Bonjour à tous,
Je débute en VBA et j'ai ce message qui s'affiche lorsque je veux executer ma macro:
"Erreur d'execution 5- argument ou appel de procédure incorrecte"
Je n'arrive pas à trouver la solution..
Je vous joint ma macro
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
dl = Sheets("Données").Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne dl
For Each cel In Sheets("Données").Range("B5:B" & dl) 'boucle sur toutes les cellules éditée cel de la plage B5:Bdl...
Select Case cel.Offset(0, 2) 'agit en fonction de la cellule de la colonne D
Case "EI" 'cas "EI"
Select Case cel.Offset(0, 1).Value 'agit en fonction de la valeur de la cellule de la colonne C
Case "01 - CHAUSSEES" 'cas "01 - CHAUSSEES"
Set dest = Sheets("Actuel").Range("C83").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "02 - OUVRAGES D'ART" 'cas "02 - OUVRAGES D'ART"
Set dest = Sheets("Actuel").Range("C125").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "03 - DRAINAGE - ASSAINISSEMENT - STABILITE DES TALUS" 'cas "03 - DRAINAGE - ASSAINISSEMENT - STABILITE DES TALUS"
Set dest = Sheets("Actuel").Range("C169").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "04 - AIRES" 'cas "04 - AIRES"
Set dest = Sheets("Actuel").Range("C198").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "05 - DISPOSITIFS DE RETENUE" 'cas "05 - DISPOSITIFS DE RETENUE"
Set dest = Sheets("Actuel").Range("C209").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "06 - SIGNALISATION VERTICALE" 'cas "06 - SIGNALISATION VERTICALE"
Set dest = Sheets("Actuel").Range("C216").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "07 - SIGNALISATION HORIZONTALE" 'cas "07 - SIGNALISATION HORIZONTALE"
Set dest = Sheets("Actuel").Range("C228").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "08 - ECLAIRAGE" 'cas "08 - ECLAIRAGE"
Set dest = Sheets("Actuel").Range("C235").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "09 - CLOTURES" 'cas "09 - CLOTURES"
Set dest = Sheets("Actuel").Range("C243").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "10 - PLANTATIONS" 'cas "10 - PLANTATIONS"
Set dest = Sheets("Actuel").Range("C249").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "11 - BATIMENTS" 'cas "11 - BATIMENTS"
Set dest = Sheets("Actuel").Range("C262").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "12 - GARES" 'cas "12 - GARES"
Set dest = Sheets("Actuel").Range("C295").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "13 - DISPOSITIFS D'EXPLOITATION" 'cas "13 - DISPOSITIFS D'EXPLOITATION"
Set dest = Sheets("Actuel").Range("C316").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "14 - DIVERS" 'cas "14 - DIVERS"
Set dest = Sheets("Actuel").Range("C337").End(xlUp).Offset(1, 0) 'définit la cellule de destination
End Select 'fin de l'action en fonction de la valeur de la cellule de la colonne C
Case "IMMOS" 'cas "IMMOS"
Select Case cel.Offset(0, 1).Value 'agit en fonction de la valeur de la cellule de la colonne C
Case "OPERATIONS DM " 'cas "OPERATIONS DM " (attention il y a un espace à la fin... Faut il le laisser ou le supprimer partout ?)
Set dest = Sheets("Actuel").Range("C445").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "OPERATIONS SVS" 'cas "OPERATIONS SVS"
Set dest = Sheets("Actuel").Range("C489").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "OPERATIONS DAP" 'cas "OPERATIONS DAP"
Set dest = Sheets("Actuel").Range("C416").End(xlUp).Offset(1, 0) 'définit la cellule de destination
End Select 'fin de l'action en fonction de la valeur de la cellule de la colonne C
Case "ICAS IND" 'cas "ICAS IND"
Select Case cel.Offset(0, 1).Value 'agit en fonction de la valeur de la cellule de la colonne C
Case "AUTRES" 'cas "AUTRES" (attention il y a un espace à la fin... Faut il le laisser ou le supprimer partout ?)
Set dest = Sheets("Actuel").Range("C533").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "ENVIRONNEMENT" 'cas "ENVIRONNEMENT"
Set dest = Sheets("Actuel").Range("C550").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "PEAGES" 'cas "PEAGES"
Set dest = Sheets("Actuel").Range("C560").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "11 - BATIMENTS" 'cas "11 - BATIMENTS"
Set dest = Sheets("Actuel").Range("C504").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "13 - DISPOSITIFS D'EXPLOITATION" 'cas "13 - DISPOSITIFS D'EXPLOITATION"
Set dest = Sheets("Actuel").Range("C519").End(xlUp).Offset(1, 0) 'définit la cellule de destination
End Select 'fin de l'action en fonction de la valeur de la cellule de la colonne C
Case "ICAS D" 'cas "ICAS D"
Select Case cel.Offset(0, 1).Value 'agit en fonction de la valeur de la cellule de la colonne C
Case "01 - CHAUSSEES" 'cas "01 - CHAUSSEES"
Set dest = Sheets("Actuel").Range("C589").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "02 - OUVRAGES D'ART" 'cas "02 - OUVRAGES D'ART"
Set dest = Sheets("Actuel").Range("C617").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "03 - DRAINAGE - ASSAINISSEMENT - STABILITE DES TALUS" 'cas "03 - DRAINAGE - ASSAINISSEMENT - STABILITE DES TALUS"
Set dest = Sheets("Actuel").Range("C665").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "04 - AIRES" 'cas "04 - AIRES"
Set dest = Sheets("Actuel").Range("C694").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "05 - DISPOSITIFS DE RETENUE" 'cas "05 - DISPOSITIFS DE RETENUE"
Set dest = Sheets("Actuel").Range("C708").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "06 - SIGNALISATION VERTICALE" 'cas "06 - SIGNALISATION VERTICALE"
Set dest = Sheets("Actuel").Range("C731").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "08 - ECLAIRAGE" 'cas "08 - ECLAIRAGE"
Set dest = Sheets("Actuel").Range("C747").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "09 - CLOTURES" 'cas "09 - CLOTURES"
Set dest = Sheets("Actuel").Range("C754").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "10 - PLANTATIONS" 'cas "10 - PLANTATIONS"
Set dest = Sheets("Actuel").Range("C760").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "11 - BATIMENTS" 'cas "11 - BATIMENTS"
Set dest = Sheets("Actuel").Range("C767").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "12 - GARES" 'cas "12 - GARES"
Set dest = Sheets("Actuel").Range("C804").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "13 - DISPOSITIFS D'EXPLOITATION" 'cas "13 - DISPOSITIFS D'EXPLOITATION"
Set dest = Sheets("Actuel").Range("C832").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "14 - DIVERS" 'cas "14 - DIVERS"
Set dest = Sheets("Actuel").Range("C843").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "MDDE-EIT" 'cas "14 - DIVERS"
Set dest = Sheets("Actuel").Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellule de destination
End Select
End Select 'fin de l'action en fonction de la cellule de la colonne D
cel.Copy dest 'copie la cellule et la colle dans dest
Next cel 'prochaine cellule cel de la boucle
End Sub
Merci d'avance!
Cordialement
Mantix
Je débute en VBA et j'ai ce message qui s'affiche lorsque je veux executer ma macro:
"Erreur d'execution 5- argument ou appel de procédure incorrecte"
Je n'arrive pas à trouver la solution..
Je vous joint ma macro
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
dl = Sheets("Données").Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne dl
For Each cel In Sheets("Données").Range("B5:B" & dl) 'boucle sur toutes les cellules éditée cel de la plage B5:Bdl...
Select Case cel.Offset(0, 2) 'agit en fonction de la cellule de la colonne D
Case "EI" 'cas "EI"
Select Case cel.Offset(0, 1).Value 'agit en fonction de la valeur de la cellule de la colonne C
Case "01 - CHAUSSEES" 'cas "01 - CHAUSSEES"
Set dest = Sheets("Actuel").Range("C83").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "02 - OUVRAGES D'ART" 'cas "02 - OUVRAGES D'ART"
Set dest = Sheets("Actuel").Range("C125").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "03 - DRAINAGE - ASSAINISSEMENT - STABILITE DES TALUS" 'cas "03 - DRAINAGE - ASSAINISSEMENT - STABILITE DES TALUS"
Set dest = Sheets("Actuel").Range("C169").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "04 - AIRES" 'cas "04 - AIRES"
Set dest = Sheets("Actuel").Range("C198").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "05 - DISPOSITIFS DE RETENUE" 'cas "05 - DISPOSITIFS DE RETENUE"
Set dest = Sheets("Actuel").Range("C209").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "06 - SIGNALISATION VERTICALE" 'cas "06 - SIGNALISATION VERTICALE"
Set dest = Sheets("Actuel").Range("C216").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "07 - SIGNALISATION HORIZONTALE" 'cas "07 - SIGNALISATION HORIZONTALE"
Set dest = Sheets("Actuel").Range("C228").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "08 - ECLAIRAGE" 'cas "08 - ECLAIRAGE"
Set dest = Sheets("Actuel").Range("C235").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "09 - CLOTURES" 'cas "09 - CLOTURES"
Set dest = Sheets("Actuel").Range("C243").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "10 - PLANTATIONS" 'cas "10 - PLANTATIONS"
Set dest = Sheets("Actuel").Range("C249").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "11 - BATIMENTS" 'cas "11 - BATIMENTS"
Set dest = Sheets("Actuel").Range("C262").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "12 - GARES" 'cas "12 - GARES"
Set dest = Sheets("Actuel").Range("C295").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "13 - DISPOSITIFS D'EXPLOITATION" 'cas "13 - DISPOSITIFS D'EXPLOITATION"
Set dest = Sheets("Actuel").Range("C316").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "14 - DIVERS" 'cas "14 - DIVERS"
Set dest = Sheets("Actuel").Range("C337").End(xlUp).Offset(1, 0) 'définit la cellule de destination
End Select 'fin de l'action en fonction de la valeur de la cellule de la colonne C
Case "IMMOS" 'cas "IMMOS"
Select Case cel.Offset(0, 1).Value 'agit en fonction de la valeur de la cellule de la colonne C
Case "OPERATIONS DM " 'cas "OPERATIONS DM " (attention il y a un espace à la fin... Faut il le laisser ou le supprimer partout ?)
Set dest = Sheets("Actuel").Range("C445").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "OPERATIONS SVS" 'cas "OPERATIONS SVS"
Set dest = Sheets("Actuel").Range("C489").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "OPERATIONS DAP" 'cas "OPERATIONS DAP"
Set dest = Sheets("Actuel").Range("C416").End(xlUp).Offset(1, 0) 'définit la cellule de destination
End Select 'fin de l'action en fonction de la valeur de la cellule de la colonne C
Case "ICAS IND" 'cas "ICAS IND"
Select Case cel.Offset(0, 1).Value 'agit en fonction de la valeur de la cellule de la colonne C
Case "AUTRES" 'cas "AUTRES" (attention il y a un espace à la fin... Faut il le laisser ou le supprimer partout ?)
Set dest = Sheets("Actuel").Range("C533").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "ENVIRONNEMENT" 'cas "ENVIRONNEMENT"
Set dest = Sheets("Actuel").Range("C550").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "PEAGES" 'cas "PEAGES"
Set dest = Sheets("Actuel").Range("C560").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "11 - BATIMENTS" 'cas "11 - BATIMENTS"
Set dest = Sheets("Actuel").Range("C504").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "13 - DISPOSITIFS D'EXPLOITATION" 'cas "13 - DISPOSITIFS D'EXPLOITATION"
Set dest = Sheets("Actuel").Range("C519").End(xlUp).Offset(1, 0) 'définit la cellule de destination
End Select 'fin de l'action en fonction de la valeur de la cellule de la colonne C
Case "ICAS D" 'cas "ICAS D"
Select Case cel.Offset(0, 1).Value 'agit en fonction de la valeur de la cellule de la colonne C
Case "01 - CHAUSSEES" 'cas "01 - CHAUSSEES"
Set dest = Sheets("Actuel").Range("C589").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "02 - OUVRAGES D'ART" 'cas "02 - OUVRAGES D'ART"
Set dest = Sheets("Actuel").Range("C617").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "03 - DRAINAGE - ASSAINISSEMENT - STABILITE DES TALUS" 'cas "03 - DRAINAGE - ASSAINISSEMENT - STABILITE DES TALUS"
Set dest = Sheets("Actuel").Range("C665").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "04 - AIRES" 'cas "04 - AIRES"
Set dest = Sheets("Actuel").Range("C694").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "05 - DISPOSITIFS DE RETENUE" 'cas "05 - DISPOSITIFS DE RETENUE"
Set dest = Sheets("Actuel").Range("C708").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "06 - SIGNALISATION VERTICALE" 'cas "06 - SIGNALISATION VERTICALE"
Set dest = Sheets("Actuel").Range("C731").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "08 - ECLAIRAGE" 'cas "08 - ECLAIRAGE"
Set dest = Sheets("Actuel").Range("C747").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "09 - CLOTURES" 'cas "09 - CLOTURES"
Set dest = Sheets("Actuel").Range("C754").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "10 - PLANTATIONS" 'cas "10 - PLANTATIONS"
Set dest = Sheets("Actuel").Range("C760").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "11 - BATIMENTS" 'cas "11 - BATIMENTS"
Set dest = Sheets("Actuel").Range("C767").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "12 - GARES" 'cas "12 - GARES"
Set dest = Sheets("Actuel").Range("C804").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "13 - DISPOSITIFS D'EXPLOITATION" 'cas "13 - DISPOSITIFS D'EXPLOITATION"
Set dest = Sheets("Actuel").Range("C832").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "14 - DIVERS" 'cas "14 - DIVERS"
Set dest = Sheets("Actuel").Range("C843").End(xlUp).Offset(1, 0) 'définit la cellule de destination
Case "MDDE-EIT" 'cas "14 - DIVERS"
Set dest = Sheets("Actuel").Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellule de destination
End Select
End Select 'fin de l'action en fonction de la cellule de la colonne D
cel.Copy dest 'copie la cellule et la colle dans dest
Next cel 'prochaine cellule cel de la boucle
End Sub
Merci d'avance!
Cordialement
Mantix