Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Combiner plusieurs plages de données pour faire une liste

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 !

William77

XLDnaute Nouveau
Bonjour à tous,

Est-il possible de combiner plusieurs plages de données (de préférence sans VBA si possible), tel que le fichier joint?

Je précise que j'ai fait des recherches, mais je ne dois pas utiliser les bons mots clés.....

S'il n'y a pas le choix que d'utiliser le VBA je suis preneur 😉.

Si oui, serait-il possible d'avoir une aide?

Cordialement.
 

Pièces jointes

Bonjour litelsousa,

Je viens de lire ton post #15 au sujet du tri ;
nouveau code VBA (en plus du fichier joint) :
Code:
Sub Essai()
  Dim col As Byte, lg1&, lg2&, lg3&, chn$, k As Byte
  lg3 = 16: Application.ScreenUpdating = 0
  With Worksheets("Décompte_heures").ListObjects("Total")
    .DataBodyRange.ClearContents
    For col = 5 To 8
      For lg1 = 3 To 14
        chn = Cells(lg1, col)
        If chn <> "" Then
          k = 0
          For lg2 = 17 To lg3
            If Cells(lg2, 2) = chn Then k = 1: Exit For
          Next lg2
          If k = 0 Then
            lg3 = lg3 + 1: Cells(lg3, 2) = chn
          End If
        End If
      Next lg1
    Next col
    With .Sort
      .SortFields.Clear: .SortFields.Add Range("B16:B" & lg3), 0, 1
      .Header = 1: .MatchCase = 0: .Apply
    End With
  End With
End Sub
La ligne du Dim n'a pas changé ; pour la ligne en dessous,
j'ai seulement enlevé le commentaire ; rien n'a changé
pour la boucle For col ... Next col ; regarde tout le reste,
au-dessus de For col, et sous Next col.

Si tu n'as qu'une seule feuille dans ton vrai classeur,
tu peux remplacer Worksheets("Décompte_heures")
par ActiveSheet.

Si besoin, tu peux demander
une autre adaptation. 😉


soan
 

Pièces jointes

Hello,
Merci c'est perfect.
Mais comme j'ai pas très bien étudié la façon dont je remplirais cette liste, je l'ai modifiée.

Tout joue sauf
VB:
    With .Sort
      .SortFields.Clear: .SortFields.Add Range("3:12" & lg3), 0, 1
      .Header = 1: .MatchCase = 0: .Apply
    End With
Le "
: .Apply ne passe pas.
Je n'arrive pas à comprendre pourquoi?
 

Pièces jointes

Re,

1) ce n'est pas Range("3:12" & lg3), c'est : Range("L2:L" & lg3)
c'est pour ça que le .Apply ne passe pas !

2) si tu mets seulement la modif ci-dessus, ça ne marchera pas,
car tu as fait d'autres erreurs dans l'adaptation du code VBA !
tu les verras en comparant ton ancien code et le nouveau.

------------------------------------------------------------------------------------

3) j'ai ajouté une variable dlg& : elle est initialisée ainsi :
dlg = Cells(Rows.Count, 2).End(3).Row
c'est la dernière ligne utilisée, selon la colonne B "Date"

donc au lieu de For lg1 = 3 To 52, c'est : For lg1 = 3 To dlg
tu peux ajouter d'autres lignes dans ton tableau, la macro
va s'y adapter automatiquement
. 🙂

si tu préfères un dlg selon une autre colonne, par exemple
selon la colonne D "Motif", alors dans le code VBA, remplace 2 par 4 :
dlg = Cells(Rows.Count, 4).End(3).Row
mais surtout, ne modifie pas le 3 : c'est la constante numérique pour
xlUp : vers le haut.

attention : ne choisis pas une colonne qui a des trous ! je veux dire :
toute ligne utilisée doit avoir une date... ou un motif (selon choix).


------------------------------------------------------------------------------------

4) tu trouveras ci-dessous le fichier corrigé ; fais Ctrl e ➯ travail effectué

5) lis bien tous les commentaires du code VBA (texte en vert)

À te lire pour avoir ton avis... une autre adaptation ? 😉

soan
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Réponses
4
Affichages
276
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…