Macro - Partir de n'importe qu'elle cellule du tableau
Résolu
Amandine278
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Amandine278 Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Amandine278 Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Ci-dessous ma macro :
Sub COL2014()
'
' COL2014 Macro
'
'
Range("I2:I49").Select
Selection.Copy
Range("H2").Select
ActiveSheet.Paste
Range("I2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "2014"
Range("I3:I51").Select
Selection.ClearContents
Range("I3:I51").Select
Range("I4").Activate
ActiveWindow.SmallScroll Down:=-39
Range("I2").Select
End Sub
Je suis partie de la cellule I2 afin d'appliquer cette macro à n'importe quelle colonne de ce même tableau Excel.
C'est à dire toutes les 4 collones, concretement une fois la macro OK je dois l'exécuter 50 fois sur ce même tableau.
Comment je dois faire pour expliquer cela à ma macro ?
Je ne sais pas si je suis claire mais Merci quand même..
Amandine
Ci-dessous ma macro :
Sub COL2014()
'
' COL2014 Macro
'
'
Range("I2:I49").Select
Selection.Copy
Range("H2").Select
ActiveSheet.Paste
Range("I2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "2014"
Range("I3:I51").Select
Selection.ClearContents
Range("I3:I51").Select
Range("I4").Activate
ActiveWindow.SmallScroll Down:=-39
Range("I2").Select
End Sub
Je suis partie de la cellule I2 afin d'appliquer cette macro à n'importe quelle colonne de ce même tableau Excel.
C'est à dire toutes les 4 collones, concretement une fois la macro OK je dois l'exécuter 50 fois sur ce même tableau.
Comment je dois faire pour expliquer cela à ma macro ?
Je ne sais pas si je suis claire mais Merci quand même..
Amandine
A voir également:
- Macro - Partir de n'importe qu'elle cellule du tableau
- Tableau word - Guide
- Tableau ascii - Guide
- Mon clavier fait n'importe quoi - Accueil - Informatique
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Trier un tableau excel - Guide
2 réponses
Bonjour,
A tester (bien que je ne vois pas l'utilité de la "chose" :D)
A+
A tester (bien que je ne vois pas l'utilité de la "chose" :D)
Sub COL2014()
Dim i As Integer, Col1 As Integer, Col2 As Integer
Range("I2:I49").Copy
For i = 1 To 50
Col1 = 9 + (i - 1) * 4
Col2 = Col1 - 1
Range(Cells(2, Col1), Cells(49, Col1)).Copy
ActiveSheet.Paste Destination:=Cells(2, Col2)
Cells(2, Col1).FormulaR1C1 = "2014"
Range(Cells(3, Col1), Cells(51, Col1)).ClearContents
Next i
Application.CutCopyMode = False
End Sub
A+
Bonjour Amandine278
Le fichier avec la macro de Gyrus et ajout de mise à jour sur les formules
https://www.cjoint.com/?3KhpSA5tv1Q
Il y avait des choses que je ne savais pas faire, mais Gyrus les a traitées donc aves ses infos et les miennes voici le résultat
Une première chose à faire sur les fichiers éviter les cellules fusionnées à la place sélectionner les cellules et utiliser centrer sur plusieurs colonnes cela revient au même en présentation sans le soucis des cellules fusionnées (qui sont gênantes pour la suppressions de colonnes puis l'ajout.
Le fichier avec la macro de Gyrus et ajout de mise à jour sur les formules
https://www.cjoint.com/?3KhpSA5tv1Q
Il y avait des choses que je ne savais pas faire, mais Gyrus les a traitées donc aves ses infos et les miennes voici le résultat
Une première chose à faire sur les fichiers éviter les cellules fusionnées à la place sélectionner les cellules et utiliser centrer sur plusieurs colonnes cela revient au même en présentation sans le soucis des cellules fusionnées (qui sont gênantes pour la suppressions de colonnes puis l'ajout.
Ca fonctionne bien.
Pour débuter cette marco je voudrais dire : supprimer toutes les collones comencant par 2009 ou alors supprimer 1 colonne sur 4 à partir de c (inclu).
Par contre, sur ma macro de base j'étais partie de i, je souhaitais partir de e, j'ai donc remplacé les i par des e et ça ne prends plus en compte le changement de la colonne e..
Sub Macro1()
Dim e As Integer, Col1 As Integer, Col2 As Integer
Range("e2:e51").Copy
For e = 1 To 51
Col1 = 9 + (e - 1) * 4
Col2 = Col1 - 1
Range(Cells(2, Col1), Cells(51, Col1)).Copy
ActiveSheet.Paste Destination:=Cells(2, Col2)
Cells(2, Col1).FormulaR1C1 = "2014"
Range(Cells(3, Col1), Cells(51, Col1)).ClearContents
Next e
Application.CutCopyMode = False
End Sub
PS: l'utilité de la chose, j'ai plusieurs tableaux identiques et je perds beaucoup de temps chaque début d'année pour refaire la "mise en page" (suppressions de colonnes, ajouts de colonnes, formules de calculs etc)
Dans la boucle
For i = 1 To 50
...
Next i
La lettre i n'a aucun rapport avec la colonne I.
Il s'agit d'une variable qui est utilisée pour l'incrémentation de la boucle.
L'indication de la colonne à prendre ne compte est donné par
Col1 = 9 + (i - 1) * 4
Lorsque i=1, alors Col1=9, la colonne 9 étant la colonne I.
Si tu veux démarrer par la colonne E, il suffit d'indiquer
Col1 = 5 + (i - 1) * 4, la colonne 5 étant la colonne E.
A+
Quand j'applique ma maccro, elle s'arrete à la colonne GW alors qu'elle devrait s'arreter à la HA, pourquoi ? (GW étant la 205ème colonne)