comprendre une boucle

flo2002

XLDnaute Impliqué
Bonjour,
je crois que quelque chose m'ecchappe dans cette boucle:


Dim derligne3%, derligne4%
Dim i3%, i4%
derligne3 = Sheets("Conso_Dpt").Range("F65536").End(xlUp).Row
derligne4 = ws2.Range("D65536").End(xlUp).Row
For i4 = 2 To derligne4
For i3 = 14 To derligne3
If Sheets("Conso_Dpt").Range("F" & i3) = ws2.Range("D" & i4) Then
Exist = 1
GoTo Suivant
End If
Next
If Exist = 1 Then GoTo Suivant2
Sheets("Conso_Dpt").Range("F" & derligne3 + 1) = ws2.Range("D" & i4)
derligne3 = Sheets("Conso_Dpt").Range("F65536").End(xlUp).Row
Suivant2:
Exist = 0
Next

ce que je ne comprend pas ce sont les existe = 1. Ce sont des variables?
J'ai deux fois la meme macro avec cependant la definition des variables qui changent vca pose un probleme?
merci de vos lumieres.
 

Hervé

XLDnaute Barbatruc
Re : comprendre une boucle

re flo

j'ai pas tout compris à ta demande

If Sheets("Conso_Dpt").Range("F" & i3) = ws2.Range("D" & i4)
ce code permet de comparer deux cellules a travers une boucle

si elles sont identiques alors la variable exist prend la valeur 1

If Exist = 1 Then GoTo Suivant2
Sheets("Conso_Dpt").Range("F" & derligne3 + 1) = ws2.Range("D" & i4)
derligne3 = Sheets("Conso_Dpt").Range("F65536").End(xlUp).Row
Suivant2:
Exist = 0
Next

si la valeur d'exist est egale à 1 alors on va à suivant2 qui replace exist=0

sinon, copie la valeur de la colonne D à la suite de la colonne F de la feuille conso

voici ce que fait ton code

Ca marche ce code ?

salut
 

flo2002

XLDnaute Impliqué
Re : comprendre une boucle

à premiere vu le probleme est sur
If ws13.Range("F" & i3) = ws2.Range("D" & i4) Then

(j'ai mis conso_dpt en variable)

il me met erreur 2042 sur le ws13 et trouve la bonne valeur sur le ws2;
Une idée? merci d'avance
 

flo2002

XLDnaute Impliqué
Re : comprendre une boucle

Je ne pense pas que ce soit une bonne idée car le code est trés trés long.
cependant, je vais mettre la partie du code ou je pense ca bug:

ws2.Select
Dim derligne1%, derligne2%
Dim i1%, i2%

derligne1 = Sheets("Conso_Dpt").Range("D65536").End(xlUp).Row
derligne2 = ws2.Range("p65536").End(xlUp).Row
For i2 = 1 To derligne2
For i1 = 14 To derligne1
If Sheets("Conso_Dpt").Range("D" & i1) = ws2.Range("p" & i2) Then
Exist = 1
GoTo Suivant
End If
Next
If Exist = 1 Then GoTo Suivant
Sheets("Conso_Dpt").Range("D" & derligne1 + 1) = ws2.Range("p" & i2)
derligne1 = Sheets("Conso_Dpt").Range("D65536").End(xlUp).Row
Suivant:
Exist = 0
Next

Sheets("Conso_Dpt").Select
Rows(13).Hidden = False

derligne1 = Range("E65536").End(xlUp).Row
derligne2 = Range("D65536").End(xlUp).Row


Range("A13:C13").Copy
Range(Cells(derligne2 + 1, 1), Cells(derligne1 + 1, 3)).Select
ActiveSheet.Paste
Application.CutCopyMode = False



Range("E13:GF13").Copy
Range(Cells(derligne2 + 1, 5), Cells(derligne1 + 1, 188)).Select

ActiveSheet.Paste
Application.CutCopyMode = False

Rows(13).Hidden = True
Sheets("Conso_Dpt").Select

Calculate
Range("A14:HH10000").Select
Selection.Copy
Range("A14:HH10000").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False


ws2.Select

Dim derligne3%, derligne4%
Dim i3%, i4%
derligne3 = Sheets("Conso_Dpt").Range("F65536").End(xlUp).Row
derligne4 = ws2.Range("D65536").End(xlUp).Row

For i4 = 1 To derligne4
For i3 = 14 To derligne3
If ws13.Range("F" & i3) = ws2.Range("D" & i4) Then
Exist = 1
GoTo Suivant2
End If
Next
If Exist = 1 Then GoTo Suivant2
Sheets("Conso_Dpt").Range("F" & derligne3 + 1) = ws2.Range("D" & i4)
derligne3 = Sheets("Conso_Dpt").Range("F65536").End(xlUp).Row
Suivant2:
Exist = 0
Next

voila le premier passe trés bien et fait son boulot, le deuxieme ca coince.
Merci pour toute forme d'aide.
 

Discussions similaires

Réponses
11
Affichages
341
Réponses
2
Affichages
172

Statistiques des forums

Discussions
312 412
Messages
2 088 195
Membres
103 763
dernier inscrit
p.michaux