VBA - Problème de Code : Objet requis / Sauter des lignes avec condition
Bonjour à tous,
Je souhaiterais pouvoir insérer dans les colonnes A et E de ma page résultat, les noms de ma liste dans l'onglet Data ; et ce en fonction de leur statut (Data!G:G).
L'objectif étant de déterminer qui est revenu et qui n'est pas revenu afin que les formules de mes autres colonnes aillent chercher le reste des informations.
Le premier problème que je rencontre est qu'utiliser une formule pour remplir les colonnes A et E m'obligerais, avec les connaissances Excel dont je dispose, à afficher de nombreuses lignes vides (ce qui est problématique car mon fichier source comporte des milliers de noms donc potentiellement des milliers de lignes vides
Le second problème que je rencontre, est que lorsque je tente d'utiliser le code d'AFEH issu de ce topic "Fonction SI sauter la ligne si faux" qui traite d'un sujet similaire. J'obtiens l'erreur suivante : "Erreur d'exécution '424': Objet requis".
Voici le Code en question que je me suis permis de modifier pour les besoins de mon fichier :
Sub Essai1 ()
Dim i%, Derligne As Long
Resultat.Range("A5:A100").ClearContents
Derligne = Resultat.Range("A" & Rows.Count).End(xlUp).Row + 1
With Data
For i = 4 To 23
If .Range("g" & i) = "Pas de Retour" Then
.Range("A" & i).Copy Destination:=Resultat.Range("A" & Derligne)
Derligne = Derligne + 1
End If
Next i
End With
End Sub
Sub Essai2 ()
Dim i%, Derligne As Long
Resultat.Range("E5:E100").ClearContents
Derligne = Resultat.Range("E" & Rows.Count).End(xlUp).Row + 1
With Data
For i = 4 To 23
If .Range("g" & i) = "Retour" Then
.Range("A" & i).Copy Destination:=Resultat.Range("A" & Derligne)
Derligne = Derligne + 1
End If
Next i
End With
End SubJe dois avouer que mes compétences en VBA sont très basiques et je ne comprends pas pourquoi cela ne fonctionne pas.
Quelle est, ou quelles sont, les erreurs de mon code qui l'empêchent de fonctionner comme je le souhaite ?
En vous remerciant d'avance de votre aide,
Ayu1
bonsoir,
tes macros corrigées
Sub Essai1()
Dim i%, Derligne As Long
Set resultat = Sheets("resultat") '<--- correction
Set Data = Sheets("data") '<--- correction
resultat.Range("A5:A100").ClearContents
Derligne = resultat.Range("A" & Rows.Count).End(xlUp).Row + 1
With Data
For i = 2 To 23 '<--- correction
If .Range("g" & i) = "Pas de retour" Then '<--- correction
.Range("A" & i).Copy Destination:=resultat.Range("A" & Derligne)
Derligne = Derligne + 1
End If
Next i
End With
End Sub
Sub Essai2()
Dim i%, Derligne As Long
Set resultat = Sheets("resultat") '<--- correction
Set Data = Sheets("data") '<--- correction
resultat.Range("E5:E100").ClearContents
Derligne = resultat.Range("E" & Rows.Count).End(xlUp).Row + 1
With Data
For i = 2 To 23 '<--- correction
If .Range("g" & i) = "Retour" Then
.Range("A" & i).Copy Destination:=resultat.Range("E" & Derligne) '<--- correction
Derligne = Derligne + 1
End If
Next i
End With
End SubBonsoir à tous,
Un autre type de code? Cliquer sur le bouton Hop! Le code est dans module1.
Bonsoir,
Merci à vous deux pour vos solutions qui correspondent exactement à ce dont j'ai besoin !
Bien cordialement,
Ayu1