Problème de récupération de données dans une boucle

Résolu
Emakhtila Messages postés 17 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 10 mai 2006 - 25 avril 2006 à 11:30
Emakhtila Messages postés 17 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 10 mai 2006 - 27 avril 2006 à 15:10
Bonjour tout le monde.

Voilà le problème sur lequel j'ai besoin d'aide :
Je cherche à récupérer des données de plusieurs feuilles sur une seule avec VB6. A l'aide d'une boucle for je précise que je veux faire cette étape le nombre de fois équivalent à mon nombre de feuille (moins celle sur laquelle je recopie mes données). Dans ces feuilles, je ne récupère que 3 variables à chaque fois. Le problème c'est que au lieu de recopier pour ma deuxième feuille à la quatrième colonne, il me le recopie sur la deuxième colonne c'est à dire sur les données de ma premire feuille. Ce que je voudrait c'est que pour chaque feuille il me copie les données n'ont pas sur la colonne qui suit la première de la précédente feuille mais sur la quatrième colonne qui suit la première colonne de la feuille précédente. Je ne sais pas si j'ai été assez clair. Voici mon programme :
Dim NbFeuil As Integer
NbFeuil = Sheets.Count
For cpt = 1 To (NbFeuil - 1)
For I = 3 To 65536
If Sheets("Courbe" & cpt).Cells(I, 1) <> "" Then
Sheets("Tous").Cells(I + 1, cpt) = Sheets("Courbe" & cpt).Cells(I, 1)
End If
If Sheets("Courbe" & cpt).Cells(I, 7) <> "" Then
Sheets("Tous").Cells(I + 1, 1 + cpt) = Sheets("Courbe" & cpt).Cells(I, 7)
End If
If Sheets("Courbe" & cpt).Cells(I, 10) <> "" Then
Sheets("Tous").Cells(I + 1, 2 + cpt) = Sheets("Courbe" & cpt).Cells(I, 10)
End If
If Sheets("Courbe" & cpt).Cells(I + 2, 1) = "" Then
Exit For
End If
Next I
Next cpt

3 réponses

linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 1
25 avril 2006 à 13:40
Moi j'essaierai bien un truc dans ce genre là



Dim NbFeuil As Integer

NbFeuil = Sheets.Count

For cpt = 1 To NbFeuil

For I = 3 To 65536

If Sheets("Courbe" & cpt).Cells(I, 1) <> "" Then


Sheets("Tous").Cells(I + 1, 1 + ((cpt - 1) * NbFeuil)) =
Sheets("Courbe" & cpt).Cells(I, 1)

End If

If Sheets("Courbe" & cpt).Cells(I, 7) <> "" Then


Sheets("Tous").Cells(I + 1, 2 + ((cpt - 1) * NbFeuil)) =
Sheets("Courbe" & cpt).Cells(I, 7)

End If

If Sheets("Courbe" & cpt).Cells(I, 10) <> "" Then


Sheets("Tous").Cells(I + 1, 3 + ((cpt - 1) * NbFeuil)) =
Sheets("Courbe" & cpt).Cells(I, 10)

End If

If Sheets("Courbe" & cpt).Cells(I + 2, 1) = "" Then

Exit For

End If

Next I

Next cpt
3
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
25 avril 2006 à 11:36
Donne un exemple avec des nom de feuille et des nom de colonnes, ce sera plus simple ...
0
Emakhtila Messages postés 17 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 10 mai 2006
27 avril 2006 à 15:10
Merci beaucoup linasteph. Cela m'a bien débloqué et permis d'avancer.
0
Rejoignez-nous