uspa
Messages postés12Date d'inscriptionmercredi 21 juin 2006StatutMembreDernière intervention16 octobre 2010
-
2 oct. 2010 à 18:47
uspa
Messages postés12Date d'inscriptionmercredi 21 juin 2006StatutMembreDernière intervention16 octobre 2010
-
2 oct. 2010 à 22:15
Bonjour,
Je débute sur la création et la modification des macros. Soyez donc indulgents avec moi.
J'ai enregistré une suite d'actions dans une macro (VBA 6.3). Cela consiste à mettre un titre de colonne dans une cellule puis à remplir les 24 cellules suivantes en incrémentant chaque cellule de 1 à 24 selon: A1, A2 ...A24.
Continuer ensuite avec B (B1, B2 ...B24)...jusqu'à P (P1, P2...P24).
Pouvez-vous m'indiquer comment mettre une boucle qui incrémente automatiquement à la place des lignes de code suivantes:
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D1").Select
ActiveCell.FormulaR1C1 = "Coordonnées"
Range("D2").Select
ActiveCell.FormulaR1C1 = "A1"
Selection.AutoFill Destination:=Range("D2:D25"), Type:=xlFillDefault
Range("D26").Select
ActiveCell.FormulaR1C1 = "B1"
Selection.AutoFill Destination:=Range("D26:D49"), Type:=xlFillDefault
Range("D50").Select
ActiveCell.FormulaR1C1 = "C1"
Selection.AutoFill Destination:=Range("D50:D73"), Type:=xlFillDefault
...
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 2 oct. 2010 à 19:06
Salut et bienvenu
Première chose : remarque la catégorie dans laquelle ta question se trouve et pense à correctement la choisir la prochaine fois.
Ensuite, quand tu colles du code, il est préférable d'utiliser la coloration syntaxique 3ème icone à droite plus facile à lire et conserve les espaces de début de ligne.
Exemple :
Dim r As Integer
Dim t As Integer
Dim oRange As Range
Set oRange = Range("E2") ' Cellule de départ
For r = Asc("A") To Asc("P") ' de A à P
For t = 1 To 24 ' de 1 à 24
oRange.Value = Chr$(r) & CStr(t)
Set oRange = oRange.Offset(1, 0)
Next t
Next r
Tu noteras l'utilisation de Value et pas FormulaR1C1
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020370 2 oct. 2010 à 19:09
Pour pouvoir boucler sur les colonnes, il faut que tu utilises Cells et non la fontion range parce qu'on ne peut boucler que sur des entiers.
Alors commencons :
dim i as integer
dim j as integer
For int j=0 To 20
' j est l'indice des colonnes P est la 21 eme lettre de l'alphabet
For i=0 To 25
' i est l'indice sur les lignes
Cells(i, j).select
ActiveCell.FormulaR1C1 = "ce que tu veux mettre"
Next i
Next j
Je ne peux pas vérifier ce code, il y a donc peut être quelques erreurs, en particulier sur les indices de Cells, je ne sais pas s'ils commencent à 0 ou 1 mais tu t'en sortiras surement