Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

juicelink

XLDnaute Nouveau
Bonjour à toutes et à tous !
je suis complètement nouveau et je demande votre indulgence quant à mon ignorance... (non, je ne parle pas en rimes tout le temps...)

voilà mon problème :
-J'ai une première feuille que j'appelle feuille "maîtresse"
-J'ai ensuite 4 feuilles que j'appelle "individuelles"

Ma feuille maîtresse me sert à alimenter une liste d'éléments, exemple :
ligne 1 : secteur alimentaire
ligne 2 : secteur bricolage
ligne 3 : ...

Sur chaque feuille individuelle, la liste des éléments de la feuille doit être reportée.

Voici enfin ma question !
Est-il possible de faire en sorte que chaque fois que je rajoute une ligne dans la feuille maîtresse, elle s'ajoute toute seule comme une grande sur chaque feuille individuelle à la fin de la liste déjà existante ?

j'espère avoir été suffisamment explicite, n'hésitez pas à me demander plus de précisions :)

si quelqu'un a une idée, je lui en serai particulièrement gré ! (hop, une petite rime)

merci !

ju
 

david84

XLDnaute Barbatruc
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Bonsoir,
histoire de remonter ton fil et peut-être de répondre à ta demande, pourquoi ne pas simplement :
- nommer ta feuille 1 "Feuille maîtresse
- sélectionner ta feuille 2, appuyer sur Maj et sélectionner ta dernière feuille
- se placer en A1 et rentrer
=SI('Feuille maîtresse'!A1="";"";'Feuille maîtresse'!A1)
?
Si pas cela, un fichier exemple serait le bienvenu.
A+
 

juicelink

XLDnaute Nouveau
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Salut !
merci pour ton idée !
j'y avais pensé (j'aurai surement du le dire...)
mais le truc, c'est que je sais pas combien de ligne je vais être amené à ajouter
Avec ton idée, si c'est bien ce que je pense, je vais être obligé des le début de définir une plage limitée de ligne. Or, si je dépasse, je vais devoir revenir sur chaque feuille pour insérer des lignes entre la dernière ligne de la plage et le total des colonnes)
si c'est pas clair, je ferai un exemple dès que je peux

@++
ju
 

david84

XLDnaute Barbatruc
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Re
à tester dans ThisWorkbook :
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim zone As Range
Set zone = Worksheets("Feuille maîtresse").UsedRange
zone.Copy ActiveSheet.Cells(1, 1)
End Sub
Cette macro te recopie l'intégralité de la feuille maîtresse dans l'onglet activé.
A+
Edit : remplacer UsedRange par Cells
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim zone As Range
Set zone = Worksheets("Feuille maîtresse").Cells
zone.Copy ActiveSheet.Cells(1, 1)
End Sub
 
Dernière édition:

juicelink

XLDnaute Nouveau
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Salut !
merci ! et désolé pour le délai, le dieu freebox fait des siennes lol
Le truc, c'est qu'il faudrait que ça ne copie que la première case de la nouvelle ligne.
En fait, la mise en page des feuilles "individuelles" n'est pas la même que celle de la feuille maîtresse, et ce sont les feuilles individuelles qui une fois saisies alimentent la feuille maîtresse.
Une idée?

ju
 

david84

XLDnaute Barbatruc
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Re
Est-il possible de faire en sorte que chaque fois que je rajoute une ligne dans la feuille maîtresse, elle s'ajoute toute seule comme une grande sur chaque feuille individuelle à la fin de la liste déjà existante ?
Je crois que le fichier exemple demandé lors de mon 1er message nous permettraient de gagner en efficacité...
A+
 

juicelink

XLDnaute Nouveau
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

oui, en fait, ça sera surement plus facile...

voilà un fichier d'exemple. Finalement, chaque feuille individuelle représente des vendeurs et la feuille maîtresse permet de faire le cumul pour chaque article

en tout cas, merci pour la mega-réactivité !!

@++
ju
 

Pièces jointes

  • Stats articles.xls
    36 KB · Affichages: 146
  • Stats articles.xls
    36 KB · Affichages: 162
  • Stats articles.xls
    36 KB · Affichages: 158

david84

XLDnaute Barbatruc
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Re
sauf erreur de ma part, ton fichier n'a pas grand chose à voir avec tes explications initiales...
en fait, si j'ai bien compris, tu veux actualiser :
- la feuille "articles" au niveau de calculs mensuels (somme de l'ensemble des vendeurs par article)
-les feuilles "vendeur x" au niveau des articles ajoutés dans la feuille "articles".
Est-ce cela ?
A quoi correspondent les chiffres de la ligne 5 des feuilles "vendeur x" ?
Je pensais aux jours du mois mais un mois de février à 31 jours...je dois donc me tromper.
Combien as-tu (ou risque-tu d'avoir à terme) de feuilles "vendeur" dans ton fichier réel ?
J'attends tes explications.
A+
 

juicelink

XLDnaute Nouveau
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

re,
ma réflexion a un peu évolué au fil du temps, ce qui explique que les explications du début ne collent pas tout à fait avec le fichier envoyé, par contre, le problème reste le même.

Oui, les chiffres sur les feuilles individuelles correspondent bien à des jours de la semaine, et j'ai mis 31 jours à chaque mois par souci de simplification, je pensais masquer les jours en trop plus tard.

Je ne sais pas d'avance combien de feuilles individuelles j'aurai car il y a du turn-over donc ça peut ne jamais s’arrêter. Mais à la rigueur, ce n'est pas très grave, je changerai la formule de cumul dans la feuille maîtresse manuellement à chaque fois si je ne trouve pas de moyen d'automatisation.

En revanche, ce que j'aimerai éviter avoir à faire, c'est mettre à jour manuellement les lignes de chaque feuille individuelle lorsque j'ajoute un article dans la feuille maîtresse des articles.

voilou :)
ju
 

david84

XLDnaute Barbatruc
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Re
ma réflexion a un peu évolué au fil du temps, ce qui explique que les explications du début ne collent pas tout à fait avec le fichier envoyé, par contre, le problème reste le même.

Donc confirme-moi STP si j'ai bien compris avant que l'on s'y mette :
en fait, si j'ai bien compris, tu veux actualiser :
- la feuille "articles" au niveau de calculs mensuels (somme de l'ensemble des vendeurs par article)
-les feuilles "vendeur x" au niveau des articles ajoutés dans la feuille "articles".
Est-ce cela ?
A+
 

juicelink

XLDnaute Nouveau
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Oui c'est bien ça :
- Mettre à jour la feuille "Articles" si de nouvelles feuilles individuelles sont ajoutées
- Mettre les feuilles individuelles à jour si une nouvelle ligne article est ajoutée à la feuille maîtresse "Articles"

merci encore !
 

david84

XLDnaute Barbatruc
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Re
code à tester sur le fichier joint : ouvrir le fichier, vérifier que les vendeurs sont effacés dans les feuilles vendeur et que le tableau est vide (simplement pour que tu te rendes compte avant de lancer la macro), puis appuyer sur le bouton) :
Code:
Sub StatVentes()
Dim Plage As Range, h&, i&, j&, k, a, Borne1&, Borne2&, Total
a = Worksheets("articles").Range("A7", Worksheets("articles").[A7].End(xlDown)).Value
    For j = 1 To Sheets.Count
        If Sheets(j).Name <> "articles" Then
            Sheets(j).Cells(6, 1).Resize(UBound(a)) = a
        End If
    Next j
    
With Sheets("articles")
    Set Plage = .Range(.Cells(5, 2), .Cells(5, 9))
End With

    For h = 1 To Plage.Columns.Count
    Dim tablo()
        For i = LBound(a) To UBound(a)
            For j = 2 To Sheets.Count
                Borne1 = Evaluate("MATCH(DATE(YEAR(" & Plage(h).Address(external:=True) & "),MONTH(" & Plage(h).Address(external:=True) & "),1)," & Sheets(j).Name & "!" & "B5:IV5,0)")
                Borne2 = Evaluate("MATCH(DATE(YEAR(" & Plage(h).Address(external:=True) & "),MONTH(" & Plage(h).Address(external:=True) & ")+1,0)," & Sheets(j).Name & "!" & "B5:IV5,0)")
                    For k = Borne1 To Borne2
                        Total = Total + Sheets(j).Cells(5 + i, k + 1)
                    Next k
            Next j
        ReDim Preserve tablo(LBound(a) To UBound(a))
        tablo(i) = Total
        Total = 0
        Next i
    Sheets("articles").Cells(7, h + 1).Resize(UBound(tablo)) = Application.Transpose(tablo)
    Next h
End Sub
A+
 

Pièces jointes

  • Stats articles.xls
    65.5 KB · Affichages: 122
  • Stats articles.xls
    65.5 KB · Affichages: 139
  • Stats articles.xls
    65.5 KB · Affichages: 137

juicelink

XLDnaute Nouveau
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Niquel ! merci beaucoup, c'est super !
par contre, j'ai essayé d'ajouter une feuille vendeur, j'ai lancé la macro, mais ça a fait une erreur d'execution 13 " incompaptibilité de type".
Ca a copié les libellés des articles, mais c'est tout.
Aussi, j'ai ajouté 4 articles, la macro marche niquel, par contre, ca ne m'a pas ajouté la formule pour calculer le total de la ligne dans la feuille maîtresse, y a moyen d'y remedier?

Je vais essayer de faire une macro pour inserer une ligne sans le faire manuellement, mais avec un bouton. Si j'y arrive pas, je reviens vers toi :)

encore merci, on voit les pros !!

@+
ju
 

david84

XLDnaute Barbatruc
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

Re
par contre, j'ai essayé d'ajouter une feuille vendeur, j'ai lancé la macro, mais ça a fait une erreur d'execution 13 " incompaptibilité de type".
pas chez moi. Procède comme suit : sélectionne une feuille vendeur, appuie sur la touche Ctrl, pointe avec ta souris sur le nom de l'onglet vendeur , clique dessus et déplace-le vers la droite. Une fois ce nouvel onglet créé, renomme-le (vendeur4). Tu peux ensuite lancer ta macro. D'ailleur, à terme , je te conseille de placer ton code dans la feuille "articles" en sélectionnant l'événement Activate. Ainsi, plus besoin de bouton et la macro se lancera dès que tu reviendras dans la feuille "articles" après avoir renseigné l'un des onglets "vendeur".
Aussi, j'ai ajouté 4 articles, la macro marche niquel, par contre, ca ne m'a pas ajouté la formule pour calculer le total de la ligne dans la feuille maîtresse, y a moyen d'y remedier?
Tu n'avais pas évoqué le sujet. Je te laisse tester par toi-même les solutions que tu pourras trouver sur le forum ou en te servant de l'enregistreur de macro.
A+
 
Dernière édition:

juicelink

XLDnaute Nouveau
Re : Macro ajout ligne sur plusieurs feuilles à partir d'une feuille maîtresse

re !

bon alors j'ai un peu avancé, mais y a des trucs qui marchent pas bien.
j'essaye de pas recopier betement les codes que je peux trouver sur le forum, mais y a des trucs qui je comprends pas forcement très bien et du coup... voilà ce que ça donne :

désormais, j'ai ajouté une macro d'insertion de ligne avec un bouton (le but étant de protéger au maximum le classeur pour que les différents utilisateurs ne puisse pas casser le fichier)
mais j'ai un souci avec la macro...

Ce qui marche :
- elle ajoute bien une ligne avant la ligne "Total", ce qui était l’effet recherché.
Ce qui marche pas bien :
- s'il n'y a aucune ligne vide entre le dernier article et la ligne de total, ça m’efface la ligne du dernier article en plus d’insérer une ligne. pas top...

J'ai également ajouté à ta macro des lignes pour récupérer la formule de total en fin de ligne d'article. A mon avis, c'est pas très académique mais bon... ça a le mérite de fonctionner !

Peux tu me guider pour que je comprenne pourquoi ma macro d'insertion déconne si aucune ligne vide n'existe entre le dernier article et le total s'il te plait?

j'ai une autre question à laquelle je n'avais pas pensé avant, et je suis pas sûr de trouver moi même étant donné que j'ai pas compris grand chose à la macro que tu as fait :
Y a t'il un moyen de supprimer une ligne article sur toutes les feuilles en même temps? par exemple en la sélectionnant dans une boite de dialogue?

Encore un grand merci à toi pour ce que tu as déjà fait !

ju
 

Pièces jointes

  • Stats articles.xls
    86.5 KB · Affichages: 89
  • Stats articles.xls
    86.5 KB · Affichages: 108
  • Stats articles.xls
    86.5 KB · Affichages: 96

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote