Problème de code... Deux variables

  • Initiateur de la discussion Initiateur de la discussion thomasmbai
  • 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 !

T

thomasmbai

Guest
Bonjour,

J'essaye de faire un sub tout simple, copier des cellules dans une feuille pour les coller dans une seconde. Voici mon code :

Code:
Sub Macro_GC()


Sheets("Préparation_commandes").Activate
Dim Nb_lignes As Integer
Nb_lignes = WorksheetFunction.CountA(Range("A:A"))

For i = 2 To Nb_lignes
For j = 29 To Nb_lignes + 29

    Sheets("Préparation_commandes").Activate
        Cells(i, 1).Copy
    Sheets("Macro_BS").Activate
        Cells(j, 1).Paste
        
    Sheets("Préparation_commandes").Activate
        Cells(i, 6).Copy
    Sheets("Macro_BS").Activate
        Cells(j, 2).Paste
    Sheets("Préparation_commandes").Activate
        Cells(i, 7).Copy
    Sheets("Macro_BS").Activate
        Cells(j, 3).Paste
    Sheets("Préparation_commandes").Activate
        Cells(i, 4).Copy
    Sheets("Macro_BS").Activate
        Cells(j, 4).Paste
    
    Next
    Next
     
End Sub

Il ne fonctionne pas. D'abord il bug sur Cells(j, 1).Paste. Je ne comprends pas pourquoi.

Ensuite, l'editeur me contraint à mettre deux next. Je souhaiterais que i et j fassent +1 en même temps. La j'ai l'impression qu'il va boucler apres le premier next donc sur i=i+1 et une fois qu'il aura donné toutes les valeurs à i, il va incrémenter j=j+1. Je me trompe ?

C'est un peu confus pour moi et j'ai besoin de vos lumières. Merci d'avance.
 
Re : Problème de code... Deux variables

Bonjour Thomas,

Un essai selon ce que je crois avoir compris de l'intention :
VB:
Sub Macro_GC()
    Dim w(1 To 2) As Worksheet, Nb_lignes&, i&
    Set w(1) = Worksheets("Préparation_commandes")
    Set w(2) = Worksheets("Macro_BS")
    Nb_lignes = w(1).Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To Nb_lignes
        w(1).Cells(i, 1).Copy Destination:=w(2).Cells(27 + i, 1)
        w(1).Range(w(1).Cells(i, 6), w(1).Cells(i, 7)).Copy Destination:=w(2).Cells(27 + i, 2)
        w(1).Cells(i, 4).Copy Destination:=w(2).Cells(27 + i, 4)
    Next i
End Sub

Cordialement

KD
 
- 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
15
Affichages
784
Réponses
5
Affichages
910
Réponses
8
Affichages
780
Réponses
4
Affichages
733
Réponses
3
Affichages
922
Retour