plusieurs question - novice en VBA

Ida501

XLDnaute Nouveau
Bonjour à tous,


je suis novice en codage vba...enfin pour être même très honnête je n'y connais pas grand chose !

Pour un usage personnel, j'ai actuellement une base de données excel avec plusieurs onglets que j'ai réussi à consolider grâce à quelques tutos et lecture ... par contre lorsque la consolidation est faite, certaines en-tête ne sont pas dans le même style (je les ai mis en rouge dans mon ficher que je vous joindrai si j'y arrive ), en plus de cela, j'ai la première en-tête qui se répète juste dessous de celui que j'ai crée sur l'onglet Consolidation.. (je sais pas si je me suis bien exprimée ). Pouvez-vous me dire pourquoi cela fait ça ?

deuxième question : je souhaite insérer 3 colonnes entre C et D dans le fichier consolidation pour que cela se fasse de manière simultanée dans les autres onglets, j'ai réussi à en insérer qu'une, du coup j'ai essayé de bidouiller le code, et j'arrive à insérer dans les onglets 1 à 7 et pas dans l'onglet consolidation !(je voulais l'inverse, insérer dans la consolidation et répercutions simultanée dans les autres onglets). Quand j'essaie de ne pas mettre de numéro de colonne, cela ne fonctionne pas. Comment faire ?

je vous joins déjà le code que j'ai utilisé, j'ai peut être fait une erreur quelque part.

Option Explicit
'*******************************
'procédure permettant la consolidation
'de plusieurs données
'*************************************

'Déclaration des variables
Dim I As Integer, J As Integer
Dim DerniereLigne As Integer
Dim LastRowconsolidation As Integer

'Procédure permettant d'effacer toutes les données de la feuille consolidation

Sub effacedonnées()

Worksheets("consolidation").Select
Rows("6:1000000").Select
Selection.Clear
Range("A6").Select

End Sub

'Procédure permettant la consolidation des feuilles du classeur
Sub consolider()

Application.ScreenUpdating = False
effacedonnées

'Boucle permettant de lire toutes les feuilles à consolider
For J = 1 To 7 'Parcours les feuilles de AUTISME à UEMA
Sheets(J).Activate
Sheets(J).Select
DerniereLigne = Range("A1000000").End(xlUp).Row

For I = 1 To DerniereLigne
Sheets(J).Select
Rows(I).Select
Selection.Copy
Sheets("consolidation").Select
LastRowconsolidation = Range("a1000000").End(xlUp).Row + 1
Cells(LastRowconsolidation, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False

Next I

Next J

Application.ScreenUpdating = True
MsgBox "La consolidation est terminée...", vbOKOnly + vbInformation, "Information"

End Sub


'Procédure permettant l'insertion de colonnes
Sub InsererColonne()
Dim C As Worksheet
Dim J As Byte
Dim I As Integer
Dim O As Worksheet
Dim DLO As Integer
Dim DLC As Integer

Set C = Worksheets("Consolidation")
For J = 1 To 7
Set O = Worksheets(J)
DLO = O.Cells(Application.Rows.Count, "A").End(xlUp).Row
For I = 1 To DLO
DLC = C.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1
O.Rows(I).Copy C.Cells(DLC, "A")
Next I
O.Columns(4).Insert Shift:=xlToRight
Next J


End Sub


Je sais pas du tout si je me suis bien exprimée mais je l'espère !


Merci d'avance,
 

Pièces jointes

  • BD essai.xlsm
    53.6 KB · Affichages: 24
Dernière édition:

Pounet95

XLDnaute Occasionnel
Bonsoir Ida501
Il faut bien débuter un jour, et, c'est peut-être ça le plus difficile ?
A ce que j'ai pu lire et comprendre :
- les onglets (feuilles) contiennent des tableaux structurés pour lesquels Excel a attribué un nom avec un numéro incrémenté à chaque création : Tableau1, Tableau2, .....,Tableau99, etc
- Quand ces tableaux sont recopiés avec leur entête et leurs données dans la feuille Consolidation, il y a création de ces mêmes tableaux dans la dite feuille, toujours avec incrémentation de la numérotation. Dans le cas présent, comme toutes les lignes de la feuille consolidation sont effacées, il y a juste création de nouveaux noms. Sinon, il y a duplication ( voir feuil1 dans classeur en retour).

Sinon, pour le codage, voir ma façon de faire, qui accélère le traitement (quasi instantané pour les données actuelles).

Pour l'insertion des colonnes, je n'ai pas bien compris.
Pourquoi ne pas les avoir créées en même temps que les tableaux qui doivent être identiques je suppose.
Que doivent contenir ces colonnes ?

Merci de tes réponses
Claude alias Pounet95
 

Pièces jointes

  • BD essai retour Pounet95.xlsm
    175.6 KB · Affichages: 3

Pounet95

XLDnaute Occasionnel
Bonsoir Patrick,
Ravi de voir que je ne suis pas le seul à avoir des pb de compréhension !
Ce qui me chagrine aussi, et j'aimerais bien savoir d'où ça vient :
- quand j'ai posté, il n'y avait pas ta réponse, ni aucune autre
- je suis revenu sur la liste des messages pour voir et même mon post n'y était pas
- quelques secondes après la "cloche a sonné" m'avertissant d'une réponse, la tienne en l'occurence.

Si tu sais ou quelqu'un du forum, je suis preneur pour un semblant d'explications.
Claude alias Pounet95
 

zebanx

XLDnaute Accro
Bonjour à tous,

Je ne sais pas si cela correspond bien à la demande mais les codes sont rapidement modifiés pour :
- consolider les données
- supprimer les lignes vides dans la feuille consolidation par une macro rajoutée
- boucle pour créer 3 colonnes sur les feuilles 1 à 7

A voir avec d'autres réponses qui viendront.
C'est toujours bien de prendre différents codes pour apprendre...et réapprendre. ;)

Xl-ment
zebanx
 

Pièces jointes

  • BD essai.xlsm
    67.3 KB · Affichages: 13

Ida501

XLDnaute Nouveau
Bonsoir Ida501
Il faut bien débuter un jour, et, c'est peut-être ça le plus difficile ?
A ce que j'ai pu lire et comprendre :
- les onglets (feuilles) contiennent des tableaux structurés pour lesquels Excel a attribué un nom avec un numéro incrémenté à chaque création : Tableau1, Tableau2, .....,Tableau99, etc
- Quand ces tableaux sont recopiés avec leur entête et leurs données dans la feuille Consolidation, il y a création de ces mêmes tableaux dans la dite feuille, toujours avec incrémentation de la numérotation. Dans le cas présent, comme toutes les lignes de la feuille consolidation sont effacées, il y a juste création de nouveaux noms. Sinon, il y a duplication ( voir feuil1 dans classeur en retour).

Sinon, pour le codage, voir ma façon de faire, qui accélère le traitement (quasi instantané pour les données actuelles).

Pour l'insertion des colonnes, je n'ai pas bien compris.
Pourquoi ne pas les avoir créées en même temps que les tableaux qui doivent être identiques je suppose.
Que doivent contenir ces colonnes ?

Merci de tes réponses
Claude alias Pounet95


Merci beaucoup pour ton retour Claude ! C'est quand même mieux avec les lignes supplémentaires.
En fait j'avais déjà finalisé tous mes tableaux quand je me suis rendue compte que j'avais des informations en plus que je voulais renseigner. Je voulais y ajouter une date d'entrée, de sortie et évidement une tranche d'âge.
Du coup, je voulais essayer un code pour insérer la colonne dans la feuille consolidation afin de ne pas avoir à tout reprendre... en fait quand je sélectionne tous mes onglets je ne peux rien insérer.
Mais j'ai repris mes tableaux un par un et maintenant c'est bon !

Merci encore

Claudia (Ida501)
 
Dernière édition:

Ida501

XLDnaute Nouveau
Bonjour à tous,

Je ne sais pas si cela correspond bien à la demande mais les codes sont rapidement modifiés pour :
- consolider les données
- supprimer les lignes vides dans la feuille consolidation par une macro rajoutée
- boucle pour créer 3 colonnes sur les feuilles 1 à 7

A voir avec d'autres réponses qui viendront.
C'est toujours bien de prendre différents codes pour apprendre...et réapprendre. ;)

Xl-ment
zebanx

Merci pour ta réponse !
L'idée pour l'insertion des colonnes c'était de les insérer dans la feuille consolidation et qu'elles apparaissent en même temps dans les onglets 1 à 7.

:)
 

Discussions similaires

Réponses
4
Affichages
529
Réponses
2
Affichages
224

Statistiques des forums

Discussions
292 969
Messages
1 927 578
Membres
183 567
dernier inscrit
CHACHA972