Bonjour,
Je me suis mis à explorer les capacités de vba pour étendre mes connaissances d'excel. Je me suis lancé dans la lecture du livre VBA pour excel 2003 mais j'aimerais vraiment trouver une macro pouvant m'aider assez rapidos.
Voici j'explique le problème, mon classeur se compose de 4 feuilles :
- 3 se composant de données différentes mais de structures identiques
- 1 nommée "conso" servant à réceptionner les données des 3 premières.
La 1ère ligne de la feuille conso est déjà nommée par les titres servant pour ma pivot table. La colonne M sert à indiquer la société pour laquelle je copie les données. Donc en tout je n'aurais que 3 noms correspondant aux 3 feuilles. Dans le code c'est ainsi que j'impute manuellement le nom "société ABC". Après je sélectionne les colonnes M jusque à Z pour étendre les formules contenues dedans. A chaque fois que je copie les données venant des 3 feuilles, je delete la 1ère ligne correspondant aux intitulés des colonnes des 3 feuilles.
Le code crée est fait par l'enregistreur macro. Je fait tout simplement un CTRL+* dans une des 3 feuilles, je la paste special-value dans la feuille conso, je delete la 2ème ligne de la feuille (correspondant aux titres des 3 feuilles). Après j'indique le nom de la société dans la colonne M et j'étends la sélection de M à Z sur les autres cellules.
Le gros problème c'est :
- le programme m'étends toujours mes formules jusque la ligne 81 quelque soit le nombre de données copiés. Si j'en ai 20 ou 300, ca ne change rien. J'aimerais qu'il me copie mes formules sur les données transferées.
- est-il possible de ne pas copier la ligne 1 des 3 feuilles, elle est de toute manière deleté par après ?
Voilà ici j'ai mis le code crée seulement quand je colle la première partie. Pour les autres, je les copie très loin les unes des autres. Je fais toutes les opérations décrites ci-dessus et puis je fais un sort. Bon je suppose qu'il y a un moyen d'indiquer par vba que la macro me copie la 2ème série de données à la 1ère ligne disponible dans la feuille de conso mais bon c'est pas encore urgent de trouver cette partie.
PS je débute dans la 1ère feuille à transférer vers la feuille de conso
Merci,
séb
Edit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Sub ESSAI() Selection.CurrentRegion.Select Selection.Copy Sheets("Conso").Select Range("A2").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Rows("2:2").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Range("M2").Select ActiveCell.FormulaR1C1 = "Company ABC" Range("M2:Z2").Select Selection.AutoFill Destination:=Range("M2:Z81") Range("M2:Z81").Select End Sub
N'oublie pas de mettre les balises code et /code. Tu sélectionnes ton code et tu fais un clic sur code...
T'as rien à faire, je les ai ajoutées...
Partager