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

C

Cora

Guest
Bonjour
Je'ai écrit un code avec 3 listbox afin que, avec la première listbox on choisisse une feuille dans mon classeur, avec les listbox 2 et 3on choisit les lignes que l'on veut copier dans une autres feuille avec une sélection. Puis 2 autres lignes
Je voudrais que les lignes copiées dans la nouvelle feuille apparaissent comme dans l'ordre du programme mais c'est rarement le cas. J'aimerais comprendre pourquoie et comment je peux y remédier?

Voici un bout de mon code

Code:
If position1 = 0 Then
    Worksheets('Feuil1').Cells(1, 1).Value = 'DEMOGRAPHIE'
    For colonne = 2 To 55
        Worksheets('Feuil1').Cells(2, colonne - 1) = Worksheets('Démographie').Cells(1, colonne + 1)
        ligne2 = 3
        For ligne = 2 To 417
            For j = 0 To 42
                If position2 = j And Worksheets('Démographie').Cells(ligne, 2) = ListBox2.Value Then
                    Worksheets('Feuil1').Cells(ligne2, colonne - 1) = Worksheets('Démographie').Cells(ligne, colonne + 1)
                    ligne2 = ligne2 + 1
                End If
            Next j
            For i = 0 To 41
                If position3 = i And Worksheets('Démographie').Cells(ligne, 4) = ListBox3.Value Then
                    Worksheets('Feuil1').Cells(ligne2, colonne - 1) = Worksheets('Démographie').Cells(ligne, colonne + 1)
                    ligne2 = ligne2 + 1
                End If
            Next i
            If Worksheets('Démographie').Cells(ligne, 4) = 'Département hors Cabri' Then
                Worksheets('Feuil1').Cells(ligne2, colonne - 1) = Worksheets('Démographie').Cells(ligne, colonne + 1)
                ligne2 = ligne2 + 1
            End If
            If Worksheets('Démographie').Cells(ligne, 4) = 'Côtes d'Armor' Then
                Worksheets('Feuil1').Cells(ligne2, colonne - 1) = Worksheets('Démographie').Cells(ligne, colonne + 1)
                ligne2 = ligne2 + 1
            End If
         Next ligne
    Next colonne
End If
 
Bonjour Cora

Je voudrais que les lignes copiées dans la nouvelle feuille apparaissent comme dans l'ordre du
programme mais c'est rarement le cas

Je ne comprend pas ce que tu veux dire ici ???? Pourrais-tus développer s.v.p. ?

Merci !

En passant, une autre façon de procéder. Code un peu plus légé.

Public Sub Main()
If position1 = 0 Then
        Worksheets('Feuil1').Cells(1, 1).Value = 'DEMOGRAPHIE'
       
For colonne = 1 To 55
                Worksheets('Feuil1').Cells(2, colonne) = Worksheets('Démographie').Cells(1, colonne + 2)
                ligne2 = 3
               
For ligne = 2 To 417
                       
For j = 0 To 42
                           
If position2 = j And Worksheets('Démographie').Cells(ligne, 2) = ListBox2.Value Then
                               
Call Universelle
                           
End If
                       
Next j
                       
For i = 0 To 41
                           
If position3 = i And Worksheets('Démographie').Cells(ligne, 4) = ListBox3.Value Then
                               
Call Universelle
                           
End If
                       
Next i
                       
With Worksheets('Démographie').Cells(ligne, 4)
                           
If .Value = 'Département hors Cabri' Or .Value = 'Côtes d'Armor' Then
                                   
Call Universelle
                           
End If
                       
End With
               
Next ligne
       
Next colonne
End If
End Sub

Public Sub Universelle()
Worksheets('Feuil1').Cells(ligne2, colonne) = Worksheets('Démographie').Cells(ligne, colonne + 2)
ligne2 = ligne2 + 1
End Sub
 
erreur de ma part !
update:


Public Sub Main()
If position1 = 0 Then
        Worksheets('Feuil1').Cells(1, 1).Value = 'DEMOGRAPHIE'
       
For colonne = 1 To 55
                Worksheets('Feuil1').Cells(2, colonne) = Worksheets('Démographie').Cells(1, colonne + 2)
                ligne2 = 3
               
For ligne = 2 To 417
                       
For j = 0 To 42
                           
If position2 = j And Worksheets('Démographie').Cells(ligne, 2) = ListBox2.Value Then
                               
Call Universelle(ligne2, colonne)
                           
End If
                       
Next j
                       
For i = 0 To 41
                           
If position3 = i And Worksheets('Démographie').Cells(ligne, 4) = ListBox3.Value Then
                               
Call Universelle(ligne2, colonne)
                           
End If
                       
Next i
                       
With Worksheets('Démographie').Cells(ligne, 4)
                           
If .Value = 'Département hors Cabri' Or .Value = 'Côtes d'Armor' Then
                                   
Call Universelle(ligne2, colonne)
                           
End If
                       
End With
               
Next ligne
       
Next colonne
End If
End Sub

Public Sub Universelle(ByVal ligne2 As Integer, ByVal colonne As Integer)
Worksheets('Feuil1').Cells(ligne2, colonne) = Worksheets('Démographie').Cells(ligne, colonne + 2)
ligne2 = ligne2 + 1
End Sub
 
Bonjour Hellboy

En fait je voudrais que mon programme affiche les lignes correspondant auu choix de ma 2eme listbox. ensuite la ligne correspondant à ma 3eme listbox. puis la ligne Département Hors Cabri, puis la ligne du département. Mais le programme m'affiche les lignes dans l'odre ou il les trouve dans mes feuilles. et j'essaie de trouver une solution

sinon j'ai essayé ce que tu m'as donnée mais j'ai pas réussi à le faire marché
 
Bon Matin

J'arrive d'une f-d-s de 3 jours de congé.

Bon, je crois saisir ce que tu me dit, mais c'est difficile sans avoir le fichier que tu te sert. Est-ce que tu pourrais le joindre a ton prochain post s.v.p. Suit le liens dans ma signature pour savoir comment faire.

a+
 
- 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
5
Affichages
915
Réponses
15
Affichages
791
Réponses
4
Affichages
284
Réponses
8
Affichages
786
Réponses
4
Affichages
736
Réponses
2
Affichages
257
Retour