Microsoft 365 Comparer le nom d'une feuille à une liste de noms

fattah_5791

XLDnaute Occasionnel
bonsoir tout le monde,

merci de m'aider à concevoir un petit truc du code vba: dans un classeur excel où il ya plusieurs feuilles (nbr qui varie selon le deroulement de l'applicatif), je veux copier le contenu de la feuille (i) sous condition que son nom soit different d'une liste de noms connus.

exemple: je veux copier un contenu d'une plage de la feuille(i) sous condition que son nom soit different des noms suivants: model; Base; Plan; listes.

Merci infiniment
 

Gégé-45550

XLDnaute Accro
Bonjour,
une suggestion, même si je ne suis pas complètement sûr d'avoir bien compris le besoin :
VB:
Sub Copie()
Dim i&, j&, Liste
Liste = Array("model", "Base", "Plan", "listes")
    For i = 1 To ThisWorkbook.Worksheets.Count
        For j = LBound(Liste) To UBound(Liste)
            If ThisWorkbook.Sheets(i).Name = Liste(j) Then
                Exit Sub
            Else
                ThisWorkbook.Sheets(i).Range("mon_champ").Copy Destination:=ThisWorkbook.Sheets("mafeuille").Range("un_autre_champ")
            End If
        Next j
    Next i
End Sub
Cordialement
 

fattah_5791

XLDnaute Occasionnel
Bonsoir le fil

@fattah_5791
Joindre un fichier exemple serait un plus pour t'apporter de l'aide.

Sans fichier joint, il n'y aura rien pour m'empêcher d'aller au dodo.

A toi de voir ;)
Bnj et merci pour ta reaction

Ci joint un classeur exemple en PJ

ce qui est demandé: copier le contenu de la feuille(i), feuille(i+1) jusqu'à la feuille(n) et mettre le resultat dans la feuille(Base) en excluant de copier des feuilles: Model, Index, Plan, Listes, Base.
remarque: n est une variable variant de i=1 jusqu'au nombre de feuilles desquelles je dois copier les données.

Merci infiniment
 

Pièces jointes

  • Exemple.xlsx
    15.5 KB · Affichages: 1

fattah_5791

XLDnaute Occasionnel
Bonjour,
une suggestion, même si je ne suis pas complètement sûr d'avoir bien compris le besoin :
VB:
Sub Copie()
Dim i&, j&, Liste
Liste = Array("model", "Base", "Plan", "listes")
    For i = 1 To ThisWorkbook.Worksheets.Count
        For j = LBound(Liste) To UBound(Liste)
            If ThisWorkbook.Sheets(i).Name = Liste(j) Then
                Exit Sub
            Else
                ThisWorkbook.Sheets(i).Range("mon_champ").Copy Destination:=ThisWorkbook.Sheets("mafeuille").Range("un_autre_champ")
            End If
        Next j
    Next i
End Sub
Cordialement
Merci infiniment Gégé-45550 pour ton code que je dois adapter à mon truc
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
313 276
Messages
2 096 760
Membres
106 744
dernier inscrit
sshkm16