VBA, tableaux
Résolu
Utilisateur anonyme
-
Frenchie83 Messages postés 2240 Date d'inscription Statut Membre Dernière intervention -
Frenchie83 Messages postés 2240 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- VBA, tableaux
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Les tableaux word - Guide
- Find vba - Astuces et Solutions
9 réponses
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
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
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
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
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.
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
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
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
Passez une bonne journée
Cordialement
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è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
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:
Par:
Ca devrait aller
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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
comme ceci?
https://www.cjoint.com/c/FEEk1BxMItl
https://www.cjoint.com/c/FEEk1BxMItl
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
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
Bonne journée
Cdlt
Cdlt
For i = 1 To 6
Sheets("FABRICANT " & i).Select faut-il ici remplacer fabricant par chacun des noms des feuilles ?