VBA, tableaux

Résolu/Fermé
Utilisateur anonyme - 29 mai 2016 à 01:21
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 1 juin 2016 à 03:02
Souhaitant regrouper plusieurs tableaux en un seul et ayant peu de connaissances en language VBA, je fais appel à votre aide. Dans le classeur excel ci-joints se trouvent 12 feuilles. Parmis ces feuilles, seulement 7 devront pour le moment être concerné par une macro de groupement. Je souhaiterais regrouper les tableaux qui se trouvent dans les feuilles "FABRICANT 1" à "FABRICANT 6" en un seul qui sera générer dans la feuille GLOBAL. Les tableaux sont identiques au niveaux du nombres de colonnes et noms d'étiquettes. Seule le nombre de lignes varie. Je voudrais faire en sorte que ce tableau global s'alimente automatiquement par la suite à partir des différents tableaux lorsque dans ceux-ci on ajoute ou supprime des lignes. Sachant que dans le futur le nombre de ligne sera bien plus grand, il faut que la macro ait une plage assez grande. Enfin, je souhaite la position actuelle des feuilles actuelle ne soit pas changée. En effet, la feuille "global" doit être de préférence la 3eme feuille et les "fabricants" après.
Je vous remercie d'avance
http://www.cjoint.com/c/FECwYqowtzd

9 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
Modifié par Frenchie83 le 29/05/2016 à 08:07
Bonjour
Je voudrais faire en sorte que ce tableau global s'alimente automatiquement Automatiquement ça me parait difficile, Quel serait l'évènement déclencheur de la recopie ou de la suppression de lignes? A partir de quel moment, déclencher cette recopie?
Je vous propose que vous soyez vous même cet élément déclencheur en appuyant sur un bouton (1 bouton dans chaque feuille) au moment même où cela vous paraît opportun.
De même, la recopie se fera automatiquement dès que vous fermerez le fichier.
https://www.cjoint.com/c/FEDghrNicnw
Si cela vous convient
Cdlt
1
Utilisateur anonyme
29 mai 2016 à 11:56
Bonjour frenchie, niveau fonctionnement, cela marche parfaitement. Pour la suggestion du bouton, bonne idée. Néanmoins est-il nécéssaire de le faire apparaitre sur tout les tableaux? Seul un suffit sur la feuille "global" ?. De plus, est-il possible de mettre le tableau global sous le meme format que les autres c'est-a-dire avec les en-têtes (pour trier dans le futur) sans interferer avec la macro. En effet ce tableau comme vous l'avez-vu n'est pas sous ce format actuellement.
Cdlt
0
Utilisateur anonyme
29 mai 2016 à 14:01
De plus, comment puis-je modifier la macro si les pages concernées ne sont pas fabrciant1 , fabricant 2 etc ... mais par exemple renault, peugeot etc..

For i = 1 To 6
Sheets("FABRICANT " & i).Select faut-il ici remplacer fabricant par chacun des noms des feuilles ?
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
29 mai 2016 à 20:12
Bonsoir
est-il possible de mettre le tableau global sous le meme format que les autres c'est-a-dire avec les en-têtes (pour trier dans le futur) sans interferer avec la macro. la macro n'interfère pas sur les en-têtes, En faisant des essais , j'ai peut-être modifier celle de la feuille global. la macro n'a aucune incidence .

Pour ce qui est des fabricants, pas de soucis, au lieu de faire de 1 à 6, on fait de 4 à 9 (ce qui correspond aux numéros des feuilfes de chaque fabricant)
Voilà le résultat
https://www.cjoint.com/c/FEDsi1MX0qw
Cdlt
1
Utilisateur anonyme
29 mai 2016 à 21:20
Très bien frenchie. Néanmoins dernier soucis, les ajouts ou suppressions de ligne dans les tableaux se répercutent bien dans le global. Mais ce n'est pas le cas avec les colonnes ou la rien ne se passe. En effet lorsque que je supprime ou ajoute une colonne dans chacun des tableau et au même endroit (puisqu'il faut qu'ils soient identiques), rien ne se passe dans le global.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
30 mai 2016 à 20:02
Bonsoir
Petite correction
https://www.cjoint.com/c/FEEsafsmwIw
Le regroupement commence à la ligne 9, j'avais une erreur de saisie. En principe ça devrait aller.
Cdlt
1
Merci pour tout frenchie, vous avez répondu au gros du problème. Il y'a vraiment 0 soucis quand le tableau reste sans étiquette. Mais le soucis d'apparition des lignes vides après mise en forme du tableau avec étiquettes puis mise à jour, est toujours présent. Je vais me résigner à trier mes données seulement dans les tableaux des fabricants. Merci encore pour tout.
Passez une bonne journée
Cordialement
0
ou bien supprimer manuellement à chaque fois ces lignes qui ne servent à rien
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
31 mai 2016 à 10:22
Bonjour
J'aimerais pouvoir répondre à votre souci d'étiquettes, mais je n'en vois nullement la trace, ou alors, utilisez-vous un fichier légèrement différent ? Si vous me montrez un exemple du problème qui vous affecte, je peux éventuellement y remédier.
Cdlt
0
J'utilise le fichier que vous me renvoyer afin de visualiser le problème. Par la suite je compte calquer la macro sur un autre fichier, qui est identique avec des données confidentielles. Voici des captures d'écrans pour visualiser le souci

1ère capture : feuille "GLOBAL" sans en-têtes --> les modifications (ajout/suppressions de lignes ou de colonnes) marchent très bien et aucune lignes vides n'apparaissent.




2ème capture : Mise sous forme de tableau avec en-têtes de la feuille "GLOBAL".



3ème capture : Après modification (ajout/suppression colonnes ou lignes) et ce sous le format tableau avec en-têtes --> modifications bien prises en compte mais apparition de lignes vides (Mon point de vue : à cause de la forme de tableau avec en-têtes, il semble que la macro en plus de marcher correctement, car elle effectue la maj, regroupe une nouvelle fois les tableaux mais cette fois-ci sans les données dans les cellules, ce qui explique ces lignes vides dont je souhaiterais la suppression)



Ci-joint le fichier
http://www.cjoint.com/c/FEFi0xFlyup. Cliquer sur le bouton et vous pourrez visualiser l'apparition de ces lignes superflues
Merci bien
1
Utilisateur anonyme
31 mai 2016 à 10:59
veuillez m'excuser, je ne sais pas du tout pourquoi je parlais d'étiquettes. Je veux parler d'en-têtes de tableau -_-. Mille excuses
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
31 mai 2016 à 12:03
Effectivement, le problème est lié au fait que vous passiez en tableau.
Il faut donc modifier la fin de la macro pour l'effacement des lignes.
Remplacez les lignes suivantes:
     For CtrlLig = Cells.SpecialCells(xlCellTypeLastCell).Row To 9 Step -1
        If Rows(CtrlLig).Find("*") Is Nothing Then Rows(CtrlLig).Delete
    Next CtrlLig

Par:
    For i = [A100000].End(xlUp).Row To 9 Step -1
        If Cells(i, 1) = "" Then Cells(i, 1).EntireRow.Delete
    Next i

Ca devrait aller
0
Parfait cela fonctionne merci pour votre aide. 3 dernières questions après je vous laisse tranquille, je vous en ai déjà assez demandé

La première, concerne la compréhension de la macro et : à quoi sert le fait de dire que la valeur de la plage de A4 à G7 correspond à "obsolescence"

La deuxième concerne la ligne 7 et particulièrement les cellules H7 à AO7 ici. J'y rentre la formule suivante =NB.SI.ENS(H8:H1000;"X";$AG8:$AG1000;"0")+NB.SI.ENS dans H7 que je fais glisser jusqu'à AO7. Cette formule fonctionne parfaitement mais disparait après mise à jour

Enfin, le temps de réponse de la macro environ 15 secondes après appui sur le bonton. Les facteurs sont-ils le nombres de données et les capacités de calcul de l'ordinateur ?


Je vous souhaite une bonne après-midi
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337 > Utilisateur anonyme
31 mai 2016 à 13:55
Elle ne sert plus, vous pouvez la retirer
0
Utilisateur anonyme > Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023
31 mai 2016 à 14:10
très bien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
31 mai 2016 à 12:18
Bonjour à tous,

Pourquoi dupliquer les données et vouloir une macro que tu ne sauras pas faire évoluer ?
Tout saisir dans la même feuille et ajouter une colonne Fabriquant sur laquelle tu mets un filtre automatique est plus simple et plus efficace non ? Inutile de compliquer.
eric
1
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
30 mai 2016 à 03:04
Bonjour
Je vous renvoi à la demande initiale: Les tableaux sont identiques au niveaux du nombres de colonnes et noms d'étiquettes. Seule le nombre de lignes varie.
Néanmoins, voici avec la modification:
https://www.cjoint.com/c/FEEbdUnZvdw
Cdlt
0
Petite incompréhension, je discutais du fait que chacun des tableaux étaient identiques sauf sur un point qui est le nombre de lignes. Par contre, la modification apportée ne change rien. Par exemple si je rajoute une colonne dans tous les tableaux entre L1 et L2 par exemple, rien ne se passe dans le global, la colonne ajoutée n'apparait pas
0
Utilisateur anonyme > Kamccm
30 mai 2016 à 10:19
Je commets peut-être une erreur dans la manière de faire les choses ... en tout cas merci pour l'aide que vous apportez continuellement
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
30 mai 2016 à 12:54
0
Frenchie, c'est presque parfait :) vous avez résolu le problème des colonnes et cela marche comme pour les lignes. Il reste un petit dernier soucis. A chaque nouvelle mise a jour, il se créer un grand nombre de lignes vides. A première vue, je remarque que la macro me prends bien en compte la modification a mettre a jour, mais en plus de cela, elle crée un nombre de lignes vides égale à la somme des lignes de chacun des tableau. Comme ci, la macro regroupait encore une fois les tableaux mais cette fois-ci avec des cases vides. Je ne sais pas si j'arrive à me faire comprendre. Ainsi je suis obligé a chaque de fois les supprimer après chaque mise à jour
0
cela ne doit pas être grand chose. En effet, cela semble être du a la mise en forme du tableau, si je reste comme vous sans étiquettes ou bien que je mette en forme avec le tableau, il faut que le regroupement commence sur la ligne 10 et non pas à 9 pour qu'il n'y ait pas de soucis bizarre en tout cas merci pour tout. Je vais quand meme mettre la conversation en résolue
Bonne journée
Cdlt
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
30 mai 2016 à 14:53
0
kamccm, toujours pas frenchie. apres avoir fait insertion tableau avec etiquette en selectionnant tout le global puis en integrant une modif et ensuite en appuyant sur le bouton, une ligne avec des étiquettes apparait sur la ligne 6
0
Bonjour
peux être avec un liste dans tenu a jour a toi de voir

http://www.cjoint.com/c/FEDp31x1gA2

A+
Maurice
-1
Utilisateur anonyme
29 mai 2016 à 18:39
Bonjour, la feuille tenue a jour sert seulement à ecrire ce qui a été modifié dans le classeur. De plus, qu'apporte la modification que vous ajouter ?
0