Sélectionner que les feuilles commençant par...

adel53

XLDnaute Occasionnel
Bonjour la communauté
Je souhaite actuellement mettre en palce un outil qui me permettrait de consolider différentes fiches dans un seul tableau. Je travaille dessus depuis ce matin et je suis bien avancé. Le seul ajout que j'ai envie de faire c'est sélectionner uniquement les feuilles commençant par "Fiche" Je me demande s'il existe pas une fonction startwith ou un truc du genre je suppose qu'il faudra l'intégrer en utilisant une boucle for each seulement je ne sais pas comment faire pouvez me donner un coup de pouce merci bien
ci dessous mon code en vous remerciant

Code:
Sub MaMacro()
Application.ScreenUpdating = False

Dim I As Integer
ActiveWorkbook.Worksheets(1).Select
ActiveSheet.Range("A2").CurrentRegion.ClearContents
For I = 2 To ActiveWorkbook.Worksheets.Count
ActiveSheet.Range("A" & I).Select
ActiveSheet.Hyperlinks.Add _
Anchor:=Selection, _
Address:="", _
SubAddress:="'" & Worksheets(I).Name & "'!A1", _
TextToDisplay:=Worksheets(I).Name
ActiveSheet.Range("B" & I) = Worksheets(I).Range("C4")
ActiveSheet.Range("C" & I) = Worksheets(I).Range("F4")
ActiveSheet.Range("D" & I) = Worksheets(I).Range("C5")
ActiveSheet.Range("E" & I) = Worksheets(I).Range("F5")
ActiveSheet.Range("F" & I) = Worksheets(I).Range("C6")
ActiveSheet.Range("G" & I) = Worksheets(I).Range("C7")
ActiveSheet.Range("H" & I) = Worksheets(I).Range("C8")
ActiveSheet.Range("I" & I) = Worksheets(I).Range("k18")
ActiveSheet.Range("J" & I) = Worksheets(I).Range("k38")
ActiveSheet.Range("K" & I) = Worksheets(I).Range("k76")
Next
Cancel = True
' copie des données dans la feuille synthèse
    ActiveWorkbook.Worksheets(1).Select
    Nb_Lignes = Range("A200").End(xlUp).Row
    Range("A2:K" & Nb_Lignes).Copy
    MsgBox Nb_Lignes
    'Selection.Copy
    Sheets("Synthèse").Select
    'Selection.ClearContents
    Range("B3").Select
    ActiveSheet.Paste
End Sub
 

adel53

XLDnaute Occasionnel
Re : Sélectionner que les feuilles commençant par...

Salut pierrot
Merci pour la réponse. Ca ne marche pas j'ai essayé de mettre le début de la fonction avant et après l'initialisation de mon I mais ca reprend toujours l'ensemble des feuilles je continue de creuser
 

adel53

XLDnaute Occasionnel
Re : Sélectionner que les feuilles commençant par...

Voila merci

Code:
Sub MaMacro()
Application.ScreenUpdating = False
="red"]Dim ws As Worksheet
For Each ws In Worksheets
    If ws.Name Like "Fiche*" Then

Dim I As Integer
ActiveWorkbook.Worksheets(1).Select
ActiveSheet.Range("A2").CurrentRegion.ClearContents
For I = 2 To ActiveWorkbook.Worksheets.Count

ActiveSheet.Range("A" & I).Select
ActiveSheet.Hyperlinks.Add _
Anchor:=Selection, _
Address:="", _
SubAddress:="'" & Worksheets(I).Name & "'!A1", _
TextToDisplay:=Worksheets(I).Name
ActiveSheet.Range("B" & I) = Worksheets(I).Range("C4")
ActiveSheet.Range("C" & I) = Worksheets(I).Range("F4")
ActiveSheet.Range("D" & I) = Worksheets(I).Range("C5")
ActiveSheet.Range("E" & I) = Worksheets(I).Range("F5")
ActiveSheet.Range("F" & I) = Worksheets(I).Range("C6")
ActiveSheet.Range("G" & I) = Worksheets(I).Range("C7")
ActiveSheet.Range("H" & I) = Worksheets(I).Range("C8")
ActiveSheet.Range("I" & I) = Worksheets(I).Range("k18")
ActiveSheet.Range("J" & I) = Worksheets(I).Range("k38")
ActiveSheet.Range("K" & I) = Worksheets(I).Range("k76")



Next
Cancel = True
 End If
Next ws
' copie des données dans la feuille synthèse
    ActiveWorkbook.Worksheets(1).Select
    Nb_Lignes = Range("A200").End(xlUp).Row
    Range("A2:K" & Nb_Lignes).Copy
    'Selection.Copy
    Sheets("Synthèse").Select
    'Selection.ClearContents
    Range("B3").Select
    ActiveSheet.Paste
    

   
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Sélectionner que les feuilles commençant par...

Re,

si tu veux intervenir sur les feuilles commencant par "fiche", remplace toutes les instructions faisant référence à des "worksheets" et autres "activesheet" par l'objet en question, à savoir la variable "ws"....
 

adel53

XLDnaute Occasionnel
Re : Sélectionner que les feuilles commençant par...

Re

Problème résolu. J'ai modifié un peu la structure voici le code qui semble répondre à mon besoin j'ai changé le mode de calcul des feuilles. Et j'ai utilisé la boucle if au lieu de for each qu'en penses tu?
Code:
Sub MaMacro()
Application.ScreenUpdating = False

Dim I As Integer
Sheets(1).Select
ActiveSheet.Range("A2").CurrentRegion.ClearContents
For I = 2 To Sheets.Count
    If Sheets(I).Name Like "Fiche*" Then
        ActiveSheet.Range("A" & I).Select
        ActiveSheet.Hyperlinks.Add _
        Anchor:=Selection, _
        Address:="", _
        SubAddress:="'" & Worksheets(I).Name & "'!A1", _
        TextToDisplay:=Worksheets(I).Name
        ActiveSheet.Range("B" & I) = Worksheets(I).Range("C4")
        ActiveSheet.Range("C" & I) = Worksheets(I).Range("F4")
        ActiveSheet.Range("D" & I) = Worksheets(I).Range("C5")
        ActiveSheet.Range("E" & I) = Worksheets(I).Range("F5")
        ActiveSheet.Range("F" & I) = Worksheets(I).Range("C6")
        ActiveSheet.Range("G" & I) = Worksheets(I).Range("C7")
        ActiveSheet.Range("H" & I) = Worksheets(I).Range("C8")
        ActiveSheet.Range("I" & I) = Worksheets(I).Range("k18")
        ActiveSheet.Range("J" & I) = Worksheets(I).Range("k38")
        ActiveSheet.Range("K" & I) = Worksheets(I).Range("k76")
    End If

Cancel = True
Next
' copie des données dans la feuille synthèse
    ActiveWorkbook.Worksheets(1).Select
    Nb_Lignes = Range("A200").End(xlUp).Row
    Range("A2:K" & Nb_Lignes).Copy

    'Selection.Copy
    Sheets("Synthèse").Select
    'Selection.ClearContents
    Range("B3").Select
    ActiveSheet.Paste
End Sub

Merci pour ton coup de main bonne fin de journée
 

adel53

XLDnaute Occasionnel
Re : Sélectionner que les feuilles commençant par...

Juste un petit souci :p avec mon code il récupère bien les bonnes données en fonctions du nom de la feuille par contre si entre les feuilles qui commencent par fiche* il y a d'autres feuilles dans mon tableau synthèse il met des lignes vides. Dois je faire un tri automatiquement dans le code ou rajouter une fonction pour ne pas copier les vides?
 

Discussions similaires

Réponses
21
Affichages
1 K
Réponses
38
Affichages
4 K

Statistiques des forums

Discussions
312 231
Messages
2 086 452
Membres
103 215
dernier inscrit
anass moufik