XL 2016 Copier des cellules suivant une condition

robertduval

XLDnaute Junior
Bonjour je souhaite copier des cellules suivant une condition, si vous pouviez m'expliquer comment faire en vba, MERCI
 

Pièces jointes

  • Test.xlsx
    12.5 KB · Affichages: 7

soan

XLDnaute Barbatruc
Inactif
Bonsoir Robert,

tu as très bien décrit ta demande, bravo ! 👍 🙂

sur "Feuil2", les colonnes H:J sont vides ; va sur "Feuil1", et fais Ctrl e 😊

VB:
Option Explicit: Option Compare Text 'comparaison Text => majuscules ou minuscules : idem

Sub Essai()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub 'on doit lancer la macro à partir de "Feuil1"
  Dim nlm&, dlg&: nlm = Rows.Count 'nlm : nombre de lignes maximum = 1048576
  dlg = Cells(nlm, "B").End(xlUp).Row 'dlg : dernière ligne, selon la colonne B (ici : 7)
  If dlg = 1 And IsEmpty([A1]) Then Exit Sub 'si y'a aucune donnée, on quitte la sub !
  Dim T, eqp$, n1&, n2&, lig&, i&
  T = [B1].Resize(dlg, 4) 'les données de B1:E7 sont mises dans le tableau T
  Worksheets("Feuil2").Select 'on va sur "Feuil2" pour y travailler, puis montrer les résultats
  n1 = Cells(nlm, "A").End(xlUp).Row 'n1 : dernière ligne, selon la colonne A (ici : 7 aussi)
  If n1 = 1 Or IsEmpty([A1]) Then Exit Sub 'si y'a aucune donnée, on quitte la sub !
  Application.ScreenUpdating = False 'désactive la mise à jour écran => exécution plus rapide
  Columns("H:J").ClearContents 'on efface les éventuels anciens résulats (des colonnes H:J)
  n2 = Cells(nlm, "H").End(xlUp).Row 'n2 : dernière ligne, selon la colonne H
  For lig = 1 To n1
    With Cells(lig, "B") 'avec la colonne B des noms d'équipe
      eqp = .Value 'nom de l'équipe
      If eqp <> "" Then
        For i = 1 To dlg 'boucle de 1 à dlg, pour balayer les lignes du tableau T
          If eqp = T(i, 1) Or eqp = T(i, 2) Then 'si l'équipe est trouvée, on écrit le résultat
            .Offset(, 6) = eqp      'colonne H : nom de l'équipe
            .Offset(, 7) = T(i, 3)  'colonne I : score n° 1
            .Offset(, 8) = T(i, 4)  'colonne J : score n° 2
          End If
        Next i
      End If
    End With
  Next lig
End Sub

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis. 😉

soan
 

Pièces jointes

  • Test.xlsm
    21.4 KB · Affichages: 4

Discussions similaires

Réponses
2
Affichages
145