Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Traduir une boucle

  • Initiateur de la discussion Initiateur de la discussion flo2002
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

flo2002

XLDnaute Impliqué
Re bonjour le forum,
ce matin je cherche à comprendre comment fonctionne une boucle.
Quelqu'un peut-il me traduire celle ci:
Dim derligne1%, derligne2%
Dim i1%, i2%
Dim Exist
derligne1 = Sheets('AFU').Range('b65536').End(xlUp).Row
derligne2 = Sheets('Extract_AFU').Range('d65536').End(xlUp).Row
For i2 = 1 To derligne2
For i1 = 1 To derligne1
If Sheets('Extract_AFU').Range('d' & i2) = Sheets('AFU').Range('b' & i1) Then
Exist = 1
GoTo Suivant
End If
Next
If Exist = 1 Then GoTo Suivant
Sheets('AFU').Range('b' & derligne1 + 1) = Sheets('Extract_AFU').Range('d' & i2)
derligne1 = Sheets('AFU').Range('b65536').End(xlUp).Row
Suivant:
Exist = 0
Next

merci d'avance!
 
Re bonjour,

en faite le truc que j'ai du mal à comprendre , c'est

For i2 = 1 To derligne2
For i1 = 1 To derligne1

pourquoi égale à 1?
Cela veut dire quoi? 1 correspond à quelque chose?
 
Salut ,
Je ne suis pas sûr d'avoir bien compris ta question!!
D'après les déclarations les variables sont de type Long.
Sheets('Extract_AFU').Range('d' & i2) = Sheets('AFU').Range('b' & i1)
permet d'effectuer une comparaison cellule par cellule de tes 2 feuilles en commançant par les cellules de la première ligne
Tu vois il serait difficile ( :woohoo: ) de faire les comparaisons en commançant par Range('B0') ou Range('D0') car ces cellules n'existent pas !!

Ciao
 
Salut Flo, Blunet,

Pour ajouter quelques informations aux explications de Blunet, j'ajoute que For i2 = 1 To derligne2 signifie littéralement Pour la variable i2 allant de la ligne 1 à la ligne présente dans la variable derligne2.
derligne2 ayant été définit auparavant par la ligne derligne2 = Sheets('Extract_AFU').Range('d65536').End(xlUp).Row qui elle signifie que dans la colonne D de la feuille Extract_AFU, on cherhce la première cellule non vide en partant du bas.

A noter qu'un boucle peut tres bien être inversée, j'entends par là, une boucle qui irait de bas en haut et non de haut en bas comme c'est le cas ici. Ce qui donnerait comme code quelque chose du genre:
For i=100 to 1 Step -1
Tu remarqueras le Step -1 qui permet de définir le pas de la boucle, c'est à dire ici de dire de remonter les lignes (mais on pourrait faire la même chose sur les colonnes).

Je ne sais pas si j'ai été très clair, mais j'ai essayé.

Si tu as d'autres questions, n'hesite pas.

@+
 
flo2002 écrit:
Re bonjour,

en faite le truc que j'ai du mal à comprendre , c'est

For i2 = 1 To derligne2
For i1 = 1 To derligne1

Pour chaque cellule (de la 1ère, colonne B) non vide de la feuille Extract..., vérifier si elle est égale à l'une des cellules de la plage 'D1:dernière cellule vide' de la feuille AFU.

Ciao
 
re,

Pas de mal Blunet. Pour la phrase
ok donc i1 et 2 ne sont pas des variable mais des valeurs fixe! merci tous s'eclaire!
ce n'est pas tout a fait ca. i1 et i2 ne sont pas des valeurs fixes mais belle et bien des variables dont la valeur est incrémenté de 1 à chaque tour de boucle.

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
791
Réponses
4
Affichages
735
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…