Boucle vba

jean paul

XLDnaute Junior
bonjour à tous

je viens d'ecrire un bout de code mais c'est un peu du bricolage ,est il possible de le simplifier en incluant une deuxieme boucle pour la suppression des cellules

cordialement
jean paul

Sub essai()
Dim i As Integer


For i = 1 To 10
If cells(i, 3).Value = "" Then GoTo 1
Range(cells(i, 1), cells(i, 3)).Copy
Ligne = ActiveSheet.Range("A65536").End(xlUp).Row + 1
Range("A" & Ligne).Activate
ActiveSheet.Paste
1
Next i
Range("C1:C14").Select
Selection.Delete Shift:=xlToLeft



For i = 1 To 10
If cells(i, 3).Value = "" Then GoTo 2
Range(cells(i, 1), cells(i, 3)).Copy

Ligne = ActiveSheet.Range("A65536").End(xlUp).Row + 1
Range("A" & Ligne).Activate
ActiveSheet.Paste
2
Next i
Range("C1:C14").Select
Selection.Delete Shift:=xlToLeft



For i = 1 To 10
If cells(i, 3).Value = "" Then GoTo 3
Range(cells(i, 1), cells(i, 3)).Copy
Ligne = ActiveSheet.Range("A65536").End(xlUp).Row + 1

Range("A" & Ligne).Activate
ActiveSheet.Paste
3
Next i
Range("C1:C14").Select
Selection.Delete Shift:=xlToLeft

End Sub
 

d.ryba

XLDnaute Junior
Re : Boucle vba

Bonjour,
Sans fichier d'exemples, je n'ai pas très bien compris ce que tu faisait avec les boucles.

Toutes fois, essaye ceci :

Code:
Sub essai()
For i = 1 To 10

    If Cells(i, 3).Value <> "" Then
        Range(Cells(i, 1), Cells(i, 3)).Copy
        Ligne = ActiveSheet.Range("A65536").End(xlUp).Row + 1
        Range("A" & Ligne).Activate
        ActiveSheet.Paste
    Else
        Range("C1:C14").Select
        Selection.Delete Shift:=xlToLeft
    End If
Next i

End Sub
 

soenda

XLDnaute Accro
Re : Boucle vba

Bonjour jean paul

Comme d.ryba, je ne comprends pas très bien ce que tu veux faire. :confused:

Souhaites-tu :

à partir de la feuille1 copier dans la feuille2 (à partir de la 1ère ligne vide)
les cellules A, B et C de la ligne concernée
Si la cellule "C" de la ligne concernée n'est pas vide

Et à partir de la 1ère cellule "C" de la ligne concernée sortir de la boucle "For" et effacer les données de la feuille1, même s'il y a d'autres données après la 1ère cellule "C" vide ?

Ton problème semble simple, dès lors que l'on a compris ce que tu veux...

A plus
 

Gael

XLDnaute Barbatruc
Re : Boucle vba

Bonsoir Jean-Paul, d.ryba, soenda,

J'aurais simplement supprimé les Goto et ajouté une boucle de niveau supérieur:

Code:
Sub essai()
Dim i As Integer, j As Integer
For j = 1 To 3
    For i = 1 To 10
    If cells(i, 3).Value <> "" Then
        Range(cells(i, 1), cells(i, 3)).Copy Destination:=Sheets(2).Range("A65536").End(xlUp)(2)
        Range("b1").Copy Destination:=Sheets(2).Range("d65536").End(xlUp)(2)
    End If
    Next i
    Range("C1:C14").Select
   Selection.Delete Shift:=xlToLeft
Next j
   
Range("a1").Select
End Sub

@+

Gael
 

soenda

XLDnaute Accro
Re : Boucle vba

Bonsoir Jean-Paul, d.ryba, Gael, le fil

Je n'ai toujours pas compris ce voulait jean-paul...

En effet, les codes proposés laisse la feuille 2 vide de données.

Que voulait-on obtenir :confused:

A plus

L'exemple proposé par jean paul semble mal choisit...
 
Dernière édition:

Gael

XLDnaute Barbatruc
Re : Boucle vba

Re,

Soenda, chez moi, ça marche. La procédure copie les données de la colonne C lorsqu'il y a un chiffre puis supprime la colonne C, la colonne D devient colonne C et on recommence ainsi 3 fois.

Les données sont bien copiées en Feuil2, mais il faut remonter au début de la feuille, je me suis fait avoir aussi :p

@+

Gael
 

jean paul

XLDnaute Junior
Re : Boucle vba

Bonsoir à tous
Désolé de vous repondre si tard mais je rentre du travail
Merci à vous tous de vos reponse

la solution de Gael me convient ,je pensais bien à une double boucle mais je n'ai pas reussi à faire le code
La suppression de chaque colonne, après chaque lecture...
c'etait la solution que j'avais trouvé pour recuperer les valeurs des autre colonnes ,mais comme je vous avais prevenu c'est du bricolage ,il y a surement un code plus clean pour faire cette operation mais bon on se debrouille comme l'on peut.
Pardon pour les explications un peu légeres.

merci encore et bonne soirée à vous tous

jean paul
 

Discussions similaires

Réponses
11
Affichages
346

Statistiques des forums

Discussions
312 445
Messages
2 088 486
Membres
103 867
dernier inscrit
nykostinson