Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion jean paul
  • 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 !

J

jean paul

Guest
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
 
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
 
Re : Boucle vba

Bonjour jean paul

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

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
 
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
 
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 😕

A plus

L'exemple proposé par jean paul semble mal choisit...
 
Dernière édition:
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 😛

@+

Gael
 
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
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
471
Réponses
5
Affichages
927
Réponses
15
Affichages
818
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…