Mise à jours de la macro "création de fiches"

Bonjour à tous,

J'ai réutilisé une macro que j'avais trouvée sur le internet qui me permet de créer des fiches (une feuille différente pour chaque fiche) à partir d'un tableau de synthèse et d'un modèle de fiche.

Tout ça marche très bien mais maintenant j'aimerais que quand je fais des modifications dans mon tableau de synthèse que les fiches puisse se mettre à jour soit en re cliquant sur le bouton "créer les fiches" soit avec un nouveau bouton...

Ci-joint un exemple de fichier excel avec la macro création de fiche.

J'espère que j'ai été assez claire

Si quelqu'un aurait une solution ça m'aiderait vraiment beaucoup.

En vous remerciant

Très cordialement

12creationfiches.xlsm (57.31 Ko)

Bonjour

une proposition de macro de mise a jour

a attribuer a un bouton ou raccourci clavier :

Sub MAJFiches()
Dim cel As Range, ws As Worksheet, trouve As Boolean
Application.ScreenUpdating = False
For Each cel In Range("Noms")
    For Each ws In ActiveWorkbook.Sheets
        If ws.Name = cel Then
            trouve = True
            Exit For
        End If
    Next
    If trouve = True Then
        Sheets("Fiche").Range("C2") = cel
        With Sheets(cel)
            .Range("A1:G31") = Sheets("Fiche").Range("A1:G31").Value
            .Range("C2").Validation.Delete
        End With
    End If
    trouve = False
Next
Application.ScreenUpdating = True
End Sub

Attention ne pas faire des tests sur le fichier originale, toujours utiliser une copie

cela met à jour toutes les feuilles d'un coup, si on ne veut faire que pour la ligne selectionner on peut modifier le code

Fred

Bonjour Fred,

Super merci beaucoup pour ta rapidité !

Je vais regarder ça et je te tiens au courant.


Re Bonjour Fred,

Désolé de te déranger encore mais j'ai une erreur.

J'ai attribué ta macro à un bouton mais ça me dit "incompatibilité de type" pour Sheets(cel)

Merci de ton aide

Bonne fin de journée

C'est bon j'y suis arrivée , il suffisait que je supprime une ligne à mon code : .Range("A1:G31") = .Range("A1:G31").Value

maintenant des que je fais des modifications ça se fait automatiquement dans mes fiches.

Voila mon code au final :

Sub CreaFiches()
Dim cel As Range, ws As Worksheet, trouve As Boolean
Application.ScreenUpdating = False
For Each cel In Range("Noms")
    For Each ws In ActiveWorkbook.Sheets
        If ws.Name = cel Then
            trouve = True
            Exit For
        End If
    Next
    If trouve = False Then
        With Sheets("Fiche")
            .Range("C2") = cel
            .Copy after:=Sheets(Sheets.Count)
            With ActiveSheet
                .Range("C2").Validation.Delete
                .Name = cel
            End With
        End With
    End If
    trouve = False
Next
Application.ScreenUpdating = True
Sheets("TAB Travail").Activate

End Sub

Merci de ton aide

Bonne soirée

bonsoir dans ce cas :

merci

fred

Rechercher des sujets similaires à "mise jours macro creation fiches"