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
...
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)
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