Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des onglets

RoBBoB

XLDnaute Nouveau
Bonjour à tous, ;)

J'ai besoin de votre aide pour créer un fichier excel me permettant d'incrémenter 27 onglets à partir d'un onglet principal contenant une matrice ou l'on décide ou non d'envoyer les données de cet onglet principal dans le ou les onglets N°1 6, 10 etc ...

En pièce jointe je vous mets le fichier sur lequel je travaille ...En gros j'aimerais ... :

1/ Dans la matrice principale si je rentre un "1" dans la colonne N°2 et N°5 de la ligne 4, les données de la ligne 4 (GGG, 47, Bob) vont aller automatiquement se mettre dans les onglets 2 et 5

2/ Si j'enlève le le "1" de la colonne N°2 (colonne C) de la ligne 4, les données de la ligne 4 (GGG, 47, Bob) vont s'enlever automatiquement de l'onglet 2 et toutes les données de l'onglet 2 vont se recomposer pour rester tous les un à la suite des autres.....

3/Un système me permettant de hierarchiser les données dans chacun des 27 onglets comme je le souhaite sans que cela ne remette en cause le fonctionnement de l'incrémentation des données à partir de l'onglet matrice

Le plus (pas obligatoire) :

En créant une nouvelle colonne 28, je puisse créer automatiquement un onglet en plus dans mon fichier respectant un format type défini dans l'onglet format type

si je change la forme (couleur etc..) ou le nom des colonnes de l'onglet "Format type", cela va changer le format et le nom des colonnes se trouvant dans tous les onglets numéroté de 1 à 27

Un tel fichier excel existe-t-il ? ou bien puis-je m'inspirer d'un existant ? j'ai pas mal surfer mais n'arrive pas à trouver un tel truc ....

Pouvez vous me donner un petit coup de main ??!!

Merci à tous (de me lire ou m'aider ...) et bon week-end à tous !!!

RoBBoB:):)
 

Pièces jointes

  • Test 2.xlsx
    27.4 KB · Affichages: 37
  • Test 2.xlsx
    27.4 KB · Affichages: 38
  • Test 2.xlsx
    27.4 KB · Affichages: 40
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Bonjour à tous

RobBob [highlight][Bienvenue sur le forum][/code]
En attendant plus abouti ou une solution par formule, voici un début de solution par VBA (macro)
Pour tester, inséres un module Standard
(ALT+F11 puis menu Insertion/Module)
Copie dans ce module, les deux macros ci-dessous
Code:
Sub Remplir()
Dim i As Byte, dl&, p As Range
With Sheets("Matrice principale")
dl = .Cells(Rows.Count, "B").End(3).Row
On Error Resume Next
Set p = .Range("A4:AB" & dl).SpecialCells(xlCellTypeConstants, 5)
For Each c In p
If c = 1 Then
.Cells(c.Row, "AD").Resize(, 3).Copy Sheets(CStr(.Cells(2, c.Column))).Cells(Rows.Count, "B").End(3).Offset(1, 0)
End If
Next
End With
End Sub
Code:
Sub RAZ()
Dim i As Byte
For i = 1 To 27
Sheets(CStr(i)).Rows("3:" & Rows.Count).ClearContents
Next
End Sub
Ensuite pour tester lance d'abord la macro RAZ puis lance la macro Remplir
Regardes alors dans les onglets 1 à 27 si les données sont bien copiées au bon endroit.

NB: Voir ci-dessous les détails pour ce qui concerne l'emploi des macros.
Créer macro
Exécuter une macro
 

RoBBoB

XLDnaute Nouveau
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Merci beaucoup Staple1600 !!!

Je ne maitrise pas du tout le VBA, et vient même tout juste de découvrir tout ça !! étant dans le rush pour créer ce document ton aide est super apprécié crois moi !! je vais essayer d'enregistrer ces 2 macros et voir comment fonctionne tout ça !!
Merci beaucoup encore une fois !! je te tiens au courant !!
 

RoBBoB

XLDnaute Nouveau
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Super !!! ta première macro est toppissime !! merci beaucoup !

Pour la seconde, en fait ça revient à "nettoyer" tous les onglets et à ré-exécuter la macro "Remplir"...donc ça, ça marchera si j'arrive à automatiser mon principe de tri pour classer les données dans chacun des onglets ...donc à suivre !!! ;-))

En tous cas vraiment merci pour ta précieuse aide !!!!!!!!!!!!!!

Bon dimanche à toi !!!!
 

RoBBoB

XLDnaute Nouveau
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Puis-je te demander un dernier truc ? Si je souhaite ajouter des colonnes de donnée dans la matrice principale (exp : données 3 en "Ag", données 4 en "ah" ....) comment je dois intégrer ça dans ta macro Remplir et RAZ ??

Merciiiii !!!
 

Staple1600

XLDnaute Barbatruc
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Re

J'avais pris soin de précisé ;)
En attendant plus abouti ou une solution par formule

Pour ceci
(exp : données 3 en "Ag", données 4 en "ah" ....)
Code:
Sub MacroIndicePourMettreSurLaPiste()
MsgBox Cells(1, "AD").Resize(, 4).Address
MsgBox Cells(1, "AD").Resize(, 5).Address
End Sub

Tout est dans le Resize ;)

PS: Il n'y a rien à changer dans la macro RAZ (puisque celle-ci efface les lignes dans leur entièreté) ;)
 

RoBBoB

XLDnaute Nouveau
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Glurbs j'ai intégré des données au dessus des chiffres de 1 à 27 et la macro ne fonctionne plus...misèreeee. Peux tu juste me dire dans tes 2 macros quelles données je dois changer pour adapter le traitement des infos en fonctions de l'emplacement de celles-ci...par exemple si les données d'origine commencent à la ligne 6 au lieu de la ligne 2 je change quel paramètre dans ta macro "Remplir" ?? merci beaucoup !!!
 

Staple1600

XLDnaute Barbatruc
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Re

Ta discussion devient une discussion avec questions à tiroir ...
(ce qui a le don de rendre chafouin surtout le premier jour des mois ;))

Pourquoi changer la disposition des données en cours de route ?

Tu parles la ligne 6 et que peut-on lire dans le code de la macro RAZ (qui elle à l'origine partait de la ligne 3) ?
Indice: en anglais Row veut dire ligne

Je te laisse donc deviner où dans le code de la macro RAZ il faut changer le 3 en 6

Et pour l'autre macro, il semble évident que le changement devrait entre autre intervenir ici, non ?
Set p = .Range("A4:AB" & dl).SpecialCells(xlCellTypeConstants, 5)
4 comme ligne 4...:rolleyes:
 

RoBBoB

XLDnaute Nouveau
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Misère je suis dans la choucroute !!! je suis désolé de t'avoir embêter le 1er mars ...je viens de découvrir depuis ce matin le VBA et pour moi ça me fait encore plus penser à une secte qu'à autre chose ...lol...j'ai télécharger un doc pour me former en espérant que ce soit a good one ...([PDF] Cours Excel VBA cours et formation gratuit)

Sur ce que tu me dis..je pense comprendre....mais ça ne marche pas ..selon ce que tu me dis :
si mes données commence en ligne 10 au lieu de ligne 3 voici comment je modifie la macro RAZ :

1. Sub RAZ()
Dim i As Byte
For i = 1 To 27
Sheets(CStr(i)).Rows("10:" & Rows.Count).ClearContents
Next
End Sub

1. Sub Remplir()
Dim i As Byte, dl&, p As Range
With Sheets("Matrice principale")
dl = .Cells(Rows.Count, "B").End(3).Row
On Error Resume Next
Set p = .Range("A10:AB" & dl).SpecialCells(xlCellTypeConstants, 5)
For Each c In p
If c = 1 Then
.Cells(c.Row, "AD").Resize(, 3).Copy Sheets(CStr(.Cells(2, c.Column))).Cells(Rows.Count, "B").End(3).Offset(1, 0)
End If
Next
End With
End Sub


En mettant ces modifications ça ne marche pas ....rien ne s'écrit dans les onglets....

En plus j'ai un autre souci c'est qu'avec cette macro...à chaque fois que je rentre une nouvelle ligne de donnée, si j'exécute une nouvelle fois la macro remplir....la fonction ressaisit une seconde fois les lignes qui avaient déjà été affecté dans les onglets...bref je me retrouve avec un trucs énorme sachant que je vais ajouter progressivement qq chose comme 1000 lignes voir plus ....aie aie caramba !!!!


Quand aux lignes de programmation :
Sub MacroIndicePourMettreSurLaPiste()
MsgBox Cells(1, "AD").Resize(, 4).Address
MsgBox Cells(1, "AD").Resize(, 5).Address
End Sub

je ne sais tout simplement pas ou les mettre dans ta macro remplir ???....

Je sais je pédale grave dans la choucroute..mais pense jusque que je ne ne connais ni la logique de VBA ni les fonctions Resize Msgbox etc....

misèreeeeee
 

Staple1600

XLDnaute Barbatruc
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Re,

1) Tout est dans le nom de la macro ;)
Sub MacroIndicePourMettreSurLaPiste()
MsgBox Cells(1, "AD").Resize(, 4).Address
MsgBox Cells(1, "AD").Resize(, 5).Address
End Sub
Cette macro ne sert à rien d'autre que te mettre sur la voie
Apparemment c'est loupé ;)

2) Tu avais cliqué sur les liens (en bleu) en bas du message #2

3) Joins ton fichier exemple actuel sur lequel tu travailles que je vois où tu as fauté, mon enfant ;)
(désolé pour cette réminiscence du catéchisme subi pendant mon enfance)

4) Misère, misère!
 

RoBBoB

XLDnaute Nouveau
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

OUi comme tu dis ...misère misère....disons que me mettre sur la voie...ça sera possible lorsque j'aurai potassé au moins la 1ère centaine de page de la bible du VBA.....la pour l'instant je ne suis toujours au fin fonds du fossé à vrai dire ....

Voici le fichier ci-joint. Merci pour tes lumières qui j'en suis sur sauront guider mes 1er pas pour sortir du fossé !!!

Bonne fin de dimanche et merci encore !!
 

Pièces jointes

  • Test 2 -01MAR2015.xlsm
    51 KB · Affichages: 25

Staple1600

XLDnaute Barbatruc
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Re


Je te laisse jouer aux jeu des sept différences ;)
A toi de trouver où j'ai changer des choses
PS: Test OK sur ta dernière PJ
Code:
Sub Remplir()
 Dim i As Byte, dl&, p As Range
 With Sheets("Matrice principale")
 dl = .Cells(Rows.Count, "B").End(3).Row
 On Error Resume Next
 Set p = .Range("B10:AB" & dl).SpecialCells(xlCellTypeConstants, 5)
 For Each c In p
 If c = 1 Then
 .Cells(c.Row, "AD").Resize(, 3).Copy Sheets(CStr(.Cells(8, c.Column))).Cells(Rows.Count, "B").End(3).Offset(1, 0)
 End If
 Next
 End With
 End Sub

PS1: Pour recopier plus de colonnes, faire ce changement sur cette ligne (6 au lieu de 3)
.Cells(c.Row, "AD").Resize(, 6).Copy Sheets(CStr(.Cells(8, c.Column))).Cells(Rows.Count, "B").End(3).Offset(1, 0)

PS2: Tiens, tiens ... yves iffic... cela me rappelle quelqu'un ?
Juste une coïncidence ?
 
Dernière édition:

RoBBoB

XLDnaute Nouveau
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Cool , ça hyperfonctionne !!! sauf le fait que à chaque fois que je réexécute la macro remplir, ça me réinscrit dans chaque onglet les données qui y sont déjà....glurbssss....

A peine remonté sur la longue route de la VBA, me revoilà les 4 fers en l'air !!!!!!!!!! aiaiiaiaiaiaiiieeee
 

Staple1600

XLDnaute Barbatruc
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Re

Bis repetita...
J'avais pris soin de précisé ;)
En attendant plus abouti ou une solution par formule
Question 1:
Pourquoi exécuter plusieurs fois la macro Remplir ??

Question 2:
Tu as trouvé les différences entre ton code et mes modifs ?
Et tu as compris le fonctionnement du code ?

Question3:
Tu as vu le PS2 de mon précédent message ?
 

RoBBoB

XLDnaute Nouveau
Re : Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des ongle

Q1 : en fait oui en effaçant tout et en ré-exécutant la fonction remplir ça revient au même... c'est très juste !...mais mais ...

parce que le diable est dans les détails ...en fait je veux me servir de la matrice centrale pour envoyer des données dans les différents onglets et ensuite je vais trier les données dans les onglets ...or pour l'instant ce tri il va être effectué par moi (au bas mot ça va être un tri super fastidieux parce que pas vraiment automatisable ...en tous cas pas à ce stade....)

Donc si je m'arrache les cheveux à trier les ..27 onglets et que rajoute des données dans la matrice principale ....et que je dois tout ré-éffacer pour ré-exécuter remplir...et donc en perdant le tri que j'aurais fait dans les 27 onglets ....je pense.je pense que mon cœur n'y résistera pas ....glurbsss !!! adieu veau vache cochon !!!!!!!!!

Q2: je garde ça pour demain matin, à la fraiche...j'ai attaqué le doc sur le VBA facile ...

Q3 : oui je viens de voir ton PS 2...mais c'est une coincidence...parce que je ne connaissais pas le VBA jusqu'à ce matin ...lol ..et j'ai vu que le gars parlais macro comme moi je parle de mes courgettes !!!!!!!..Iffic, ça vient de Iffig, et en Breton c'est yves..je suis breton et je m'appelle yves....donc dès fois j'utilise ce nom qu'en j'ai une poussée de bretonnisme aigue !! lol

;-))
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi