Bonjour,
j'ai une macro qui me permet de copier des données d'un fichier ectérieur
vers mon fichier. Le hic, c'est que ça bug depuis que j'ai fais des tests sur
Excel 2007.... même si je ne pense pas que ça ai un rapport. Quelqu'un peut
me dire pourquoi ça plante ?
Merci. (il met : "argument ou appel de procédure incorrect)
YANN
-----------
Sub Import() 'pour importer la balance
Dim Fichier As String, X
Dim DerLig As Long, DerCol As Integer
Dim Chemin As String, Wk As Workbook
rep = MsgBox("Est-ce une balance qui provient de X?", vbYesNo)
If rep = vbYes Then
[BalPGI] = 1
[BalPGIouPas] = "DE X"
Else
[BalPGI] = 0
[BalPGIouPas] = "DU CLIENT"
End If
If MsgBox("Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then
Exit Sub
End If
'onglet Balances GA10
With Sheets("GA10")
.[A3:F3000].Value = "" 'effacement
End With
Chemin = ActiveWorkbook.path
If Chemin = "" Then
Chemin = Application.DefaultFilePath
End If
ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '------******-------- ça plante là
ChDir (Chemin)
Application.ScreenUpdating = False
Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False)
If TypeName(Fichier) = "Boolean" Then
MsgBox "Opération annulée. Aucun fichier sélectionné"
Exit Sub
Else
Set Wk = Workbooks.Open(Fichier)
End If
With Wk.ActiveSheet
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
X = .Range(.Range("A2"), .Cells(DerLig, DerCol))
End With
With ThisWorkbook.Sheets("GA10")
.Range("A3").Resize(UBound(X, 1)).ClearContents
.Range("A3").Resize(UBound(X, 1)).NumberFormat = "General"
.Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X
End With
Wk.Close False
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
Bonjour. A tout hasard, efface la ligne et réécris-la. Cordialement. Daniel
Bonjour, j'ai une macro qui me permet de copier des données d'un fichier ectérieur vers mon fichier. Le hic, c'est que ça bug depuis que j'ai fais des tests sur Excel 2007.... même si je ne pense pas que ça ai un rapport. Quelqu'un peut me dire pourquoi ça plante ? Merci. (il met : "argument ou appel de procédure incorrect) YANN ----------- Sub Import() 'pour importer la balance Dim Fichier As String, X Dim DerLig As Long, DerCol As Integer Dim Chemin As String, Wk As Workbook rep = MsgBox("Est-ce une balance qui provient de X?", vbYesNo) If rep = vbYes Then [BalPGI] = 1 [BalPGIouPas] = "DE X" Else [BalPGI] = 0 [BalPGIouPas] = "DU CLIENT" End If If MsgBox("Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then Exit Sub End If 'onglet Balances GA10 With Sheets("GA10") .[A3:F3000].Value = "" 'effacement End With Chemin = ActiveWorkbook.path If Chemin = "" Then Chemin = Application.DefaultFilePath End If ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '------******-------- ça plante là ChDir (Chemin) Application.ScreenUpdating = False Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False) If TypeName(Fichier) = "Boolean" Then MsgBox "Opération annulée. Aucun fichier sélectionné" Exit Sub Else Set Wk = Workbooks.Open(Fichier) End If With Wk.ActiveSheet DerLig = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row DerCol = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious).Column X = .Range(.Range("A2"), .Cells(DerLig, DerCol)) End With With ThisWorkbook.Sheets("GA10") .Range("A3").Resize(UBound(X, 1)).ClearContents .Range("A3").Resize(UBound(X, 1)).NumberFormat = "General" .Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X End With Wk.Close False End Sub
Bonjour.
A tout hasard, efface la ligne et réécris-la.
Cordialement.
Daniel
Bonjour,
j'ai une macro qui me permet de copier des données d'un fichier ectérieur
vers mon fichier. Le hic, c'est que ça bug depuis que j'ai fais des tests sur
Excel 2007.... même si je ne pense pas que ça ai un rapport. Quelqu'un peut
me dire pourquoi ça plante ?
Merci. (il met : "argument ou appel de procédure incorrect)
YANN
-----------
Sub Import() 'pour importer la balance
Dim Fichier As String, X
Dim DerLig As Long, DerCol As Integer
Dim Chemin As String, Wk As Workbook
rep = MsgBox("Est-ce une balance qui provient de X?", vbYesNo)
If rep = vbYes Then
[BalPGI] = 1
[BalPGIouPas] = "DE X"
Else
[BalPGI] = 0
[BalPGIouPas] = "DU CLIENT"
End If
If MsgBox("Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then
Exit Sub
End If
'onglet Balances GA10
With Sheets("GA10")
.[A3:F3000].Value = "" 'effacement
End With
Chemin = ActiveWorkbook.path
If Chemin = "" Then
Chemin = Application.DefaultFilePath
End If
ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '------******-------- ça plante là
ChDir (Chemin)
Application.ScreenUpdating = False
Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False)
If TypeName(Fichier) = "Boolean" Then
MsgBox "Opération annulée. Aucun fichier sélectionné"
Exit Sub
Else
Set Wk = Workbooks.Open(Fichier)
End If
With Wk.ActiveSheet
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
X = .Range(.Range("A2"), .Cells(DerLig, DerCol))
End With
With ThisWorkbook.Sheets("GA10")
.Range("A3").Resize(UBound(X, 1)).ClearContents
.Range("A3").Resize(UBound(X, 1)).NumberFormat = "General"
.Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X
End With
Wk.Close False
End Sub
Bonjour. A tout hasard, efface la ligne et réécris-la. Cordialement. Daniel
Bonjour, j'ai une macro qui me permet de copier des données d'un fichier ectérieur vers mon fichier. Le hic, c'est que ça bug depuis que j'ai fais des tests sur Excel 2007.... même si je ne pense pas que ça ai un rapport. Quelqu'un peut me dire pourquoi ça plante ? Merci. (il met : "argument ou appel de procédure incorrect) YANN ----------- Sub Import() 'pour importer la balance Dim Fichier As String, X Dim DerLig As Long, DerCol As Integer Dim Chemin As String, Wk As Workbook rep = MsgBox("Est-ce une balance qui provient de X?", vbYesNo) If rep = vbYes Then [BalPGI] = 1 [BalPGIouPas] = "DE X" Else [BalPGI] = 0 [BalPGIouPas] = "DU CLIENT" End If If MsgBox("Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then Exit Sub End If 'onglet Balances GA10 With Sheets("GA10") .[A3:F3000].Value = "" 'effacement End With Chemin = ActiveWorkbook.path If Chemin = "" Then Chemin = Application.DefaultFilePath End If ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '------******-------- ça plante là ChDir (Chemin) Application.ScreenUpdating = False Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False) If TypeName(Fichier) = "Boolean" Then MsgBox "Opération annulée. Aucun fichier sélectionné" Exit Sub Else Set Wk = Workbooks.Open(Fichier) End If With Wk.ActiveSheet DerLig = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row DerCol = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious).Column X = .Range(.Range("A2"), .Cells(DerLig, DerCol)) End With With ThisWorkbook.Sheets("GA10") .Range("A3").Resize(UBound(X, 1)).ClearContents .Range("A3").Resize(UBound(X, 1)).NumberFormat = "General" .Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X End With Wk.Close False End Sub
FFO
Salut à toi
La ligne prise seule chez moi fonctionne Pour déterminer la partie qui provoque le défaut mets comme ceci :
Si elle est positionnée sur un autre lecteur ta boîte de dialogue sans cette ligne ne pourra pas se positionner sur le répertoire que tu détermines par la ligne :
ChDir (Chemin)
Donc il est important que le lecteur soit bien déterminé pour que ta boîte de dialogue soit bien positionnée
de passer la souris sur Lecteur pour en connaitre la valeur
Afin de vérifier qu'elle soit correct
Si tel n'est pas le cas c'est au niveau de la ligne :
Lecteur = Mid(ActiveWorkbook.path, 1, 1)
qu'il faut orienter tes recherches et plus particulièrement sur :
ActiveWorkbook.path
Passes ta souris dessus pour en connaitre sa valeur et notamment celle de sa première lettre que tu extrais avec l'expression Mid(ActiveWorkbook.path, 1, 1)
Donnes nous des nouvelles !!!!!!
Rebonjour à toi
La ligne :
ChDrive (Lecteur)
fait en sorte de positionner la boîte de dialogue qui suit dans ton code
sur le bon lecteur :
Si elle est positionnée sur un autre lecteur ta boîte de dialogue sans
cette ligne ne pourra pas se positionner sur le répertoire que tu détermines
par la ligne :
ChDir (Chemin)
Donc il est important que le lecteur soit bien déterminé pour que ta boîte
de dialogue soit bien positionnée
de passer la souris sur Lecteur pour en connaitre la valeur
Afin de vérifier qu'elle soit correct
Si tel n'est pas le cas c'est au niveau de la ligne :
Lecteur = Mid(ActiveWorkbook.path, 1, 1)
qu'il faut orienter tes recherches et plus particulièrement sur :
ActiveWorkbook.path
Passes ta souris dessus pour en connaitre sa valeur et notamment celle de sa
première lettre que tu extrais avec l'expression Mid(ActiveWorkbook.path, 1,
1)
Si elle est positionnée sur un autre lecteur ta boîte de dialogue sans cette ligne ne pourra pas se positionner sur le répertoire que tu détermines par la ligne :
ChDir (Chemin)
Donc il est important que le lecteur soit bien déterminé pour que ta boîte de dialogue soit bien positionnée
de passer la souris sur Lecteur pour en connaitre la valeur
Afin de vérifier qu'elle soit correct
Si tel n'est pas le cas c'est au niveau de la ligne :
Lecteur = Mid(ActiveWorkbook.path, 1, 1)
qu'il faut orienter tes recherches et plus particulièrement sur :
ActiveWorkbook.path
Passes ta souris dessus pour en connaitre sa valeur et notamment celle de sa première lettre que tu extrais avec l'expression Mid(ActiveWorkbook.path, 1, 1)