Bonjour,
j'ai un code qui me rempli automatiquement la colonne A1 à A20. Je souhaiterai que ça continue dans les colonnes B, C, D et E. Comment faire ???
Merci de me donner un p'tit coup de pouce...
Bonjour,
j'ai un code qui me rempli automatiquement la colonne A1 à A20. Je souhaiterai que ça continue dans les colonnes B, C, D et E. Comment faire ???
Merci de me donner un p'tit coup de pouce...
Montre ton code, qu'on n'ai pas à le ré-écrire pour le compléter![]()
Voilà mon code !
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 Dim i As Integer Dim j As Integer Dim iMax As Integer Dim iStart As Long Dim jMax As Integer Dim jStart As Long jMax = 17 jStart = Val(Mid([a1], 2)) For j = 1 To jMax Cells(j * 2 + 1, 1) = "a" & jStart + j & "a" Next j iMax = 18 iStart = Val([a2]) For i = 2 To iMax Cells(i * 2, 1) = iStart + i - 1 Next i
Si je reprends ton code, que je n'ai pas tout compris (!) tu devrais pouvoir faire ça comme ça
Sans garantie car tu continueras à utiliser la valeur de A1 dans un cas et de A2 dans l'autre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 NoColMax = 5 For NoCol = 1 to NoColMax jMax = 17 jStart = Val(Mid([a1], 2)) For j = 1 To jMax Cells(j * 2 + 1, NoCol) = "a" & jStart + j & "a" Next j iMax = 18 iStart = Val([a2]) For i = 2 To iMax Cells(i * 2, NoCol) = iStart + i - 1 Next i Next
Si tu veux utiliser A1 puis B1 puis ... E1 tu devras modifier l'adressage et mettre
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Jstart = Val(Mid(Cells(1,NoCol),2)) et istart = Val(Cells(2,NoCol))
Je n'ai pas été très clair. En fait il s'agit d'une incrémentation et il faudrait que B1 soit la suite de A19, B2 la suite de A20, etc.
Pourrais-tu montrer à quoi devrait ressembler ton fichier à la fin?
En visualisant le résultat, c'est toujours plus simpe de coder quelque chose
Voilà ce que devrait donné ma liste (en plus petit) le but et que j'entre la ou les deux premiers champs (A1 et A2) et que le reste ce complète tout seul. les données dans les code barre correspondent au chiffre d'en dessous avec un a avant et après. Exemple a4394593a dans la case A1.
Voilà l'truc... j'espère que c'est compréhensif...
OK je cris avoir compris
tu veux en écrire 10 par colonne puis continuer ton incrémentation sur la colonne B, etc ...
Je m'occupe de ton truc
je comprends aps bien le type code barre mais je vais faire en sorte que tout se replisse bien
àtoi après de fairearfiche les codes barres
vlà le bout de code
Je te laisse faire pour la mise en forme
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
18
19
20
21
22
23
24
25
26
27 Const nbreColonne As Long = 5 Const nbreLigne As Long = 20 Const valDepart As Long = 453879 Sub a() Dim val As Long Dim i, j As Integer i = 1 j = 1 val = valDepart While j <= nbreColonne While i <= nbreLigne If (i Mod 2 = 1) Then Cells(i, j).Value = "a" & val & "a" Else Cells(i, j).Value = val val = val + 1 End If i = i + 1 Wend i = 1 j = j + 1 Wend End Sub
ptite explication quand même
les constantes deinisse le nombrede ligne et de colonne sur lesquelles tu veux faire ton truc afin que tu puisses chnager facilement sans avoir à modifier le code
Ton nombre de ligne devra forcément être pair pour avoir une alternance de code barre et de numérique
J'ai mis une valeur par défaut du nmobre de départ que tu pêux aussi modifier
Tu peux imaginer rajouter aussi une colonen et une ligne de départ si tu veux copléter une lsite qui existe déjà sans avoir à tout relancer
TU initiliaserais les i et j que j'ai défins par une variables constantes qui te donnerait ton point de depart
Dans cette ordre d'idée serait-il possible de mettre comme nombre de départ celui qui se trouve dans le champ A2 (sans les "a"...). Cela supposerait que je rentre le numéro dans ce champs à la main...Envoyé par helios77
Le mieux (mais je ne sais pas comment faire) serait de créer une boîte de dialogue qui me demande le numéro de départ... Est-ce réalisable ?
Pour ça, je t'ai donné le code : Cells(NoLigne, Nocol)
Pour la boit de dialogue,
tu peux utiliser InputBox
Je te laisse regarder dans l'aide car il est assez clair pour ce genre de
méthode
PS : Evidemment, la constante que j'avais placé pour le nombrede départ ne pourra plus en être une, faudra alors la définir comme une Dim normal
Si c'est pour sélectionner une cellule en cours de macro, la syntaxe est celle-ci
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim r As Range, Ladresse Set r = Application.InputBox("Sélection d'une cellule (pour sélectionner plusieurs cellules, maintenir la touche ctrl enfoncée)", Type:=8) Ladresse = r.Address
Voilà le code que j'ai créé (avec votre aide)
A l'usage, je me dis que ce serait bien de pouvoir fixer une valeur de fin. Je m'explique : Actuellement je rentre le premier chiffre dans l'inputbox et ça se rempli de A1 à F36. Ce qu'il faudrait c'est remplir le tableau jusqu'à une certaine valeur. Est-ce possible ?
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
18
19
20 Sub code() Dim val As Long Dim i, j As Integer i = 1 j = 1 val = Application.InputBox("Entrer le premier N°") While j <= 7 While i <= 36 If (i Mod 2 = 1) Then Cells(i, j).Value = "a" & val & "a" Else Cells(i, j).Value = val val = val + 1 End If i = i + 1 Wend i = 1 j = j + 1 Wend End Sub
Qu'appelles-tu Valeur ? Un N° de ligne ? Quelle ligne, comment souhaiterais-tu que soit établie cette valeur ?Ce qu'il faudrait c'est remplir le tableau jusqu'à une certaine valeur. Est-ce possible ?
A+
tu fais le meme genre d'inputbox pour demander al valeur de fin
Dans ta boucle, quand tu trouves cette valeur, au lieu de faire i = i +1 tu fais i = 500 par exemple pour sortir de ta boucle
Je crois qu'il y a une commande genre exit while pour sortir de al boucle mais jesuis pas sur, je m'en suis jamais servi
Dans otn code, le nmbre de ligne (36) et de colonnes (7) sont en durs ???
Tu devrais les remettre en constante pour le cas ou tu devrais lesmodifier un jour ou t'en resservir pour autre chose
En effet, petit précision.
Actuellement le inputbox me demande le n° de départ. j'entre le n° (par exemple 100) et mon code rempli mon tableau
a100a
100
a101a
101
...
ce qu'il faudrait c'est que je rentre le 100 de départ puis par exemple avec un autre inputbox 250 afin que ça me remplise le tableau dans la même idée mais uniquement de 100 à 250.
sans nombre de colonne et/ou ligne max ???
Tu modifies ta boucle pourqu'elle boucle tant que la valeur final n'est pas atteinte, y a rien de compliqué
Ce qui t'intéresse, c'est de connaître la dernière ligne renseignée afin de partir de cette ligne vers ta nouvelle valeur ?
Précise sans nous obliger à tout relire... 100 c'est un N° de ligne ?
A+
c'est tou bon j'ai réussi ! Grace à vous![]()
J'ai enlever le colonne max car je n'en ai plus besoin. Par contre la ligne max oui.
Donc maintenant je peux entrer mon chiffre de départ et de fin avec le inputbox (par exemple 100 et 250) ça me remplis mon tableau tout seul de
a100a à 250.
Merci à tous
Partager