Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] XL 2003 - boucle -> 10'000

5 réponses
Avatar
Congelator
Salut tout le monde, j'ai besoin de vos connaissances. Mon problème :
je dois faire des étiquettes avec des chiffres de 1 à 10'000 (pour cette
fois...).
De A1 à D1 on a 1 2 3 4
De A2 à D2 on a 5 6 7 8
etc...
J'ai temporairement réglé mon problème avec des formules et une
incrémentation manuelle sur 2500 lignes mais j'aurais aimé le faire de
manière plus "classe" via 2 msgbox "combien d'étiquettes" et "combien de
colonnes" et que ça me pose les chiffres dans les cellules. Si quelqu'un a
une idée, ça m'intéresse.
Merci d'avance
--
Céd / Lausanne

5 réponses

Avatar
Caetera
"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
Salut tout le monde, j'ai besoin de vos connaissances. Mon problème :
je dois faire des étiquettes avec des chiffres de 1 à 10'000 (pour cette
fois...).
De A1 à D1 on a 1 2 3 4
De A2 à D2 on a 5 6 7 8
etc...
J'ai temporairement réglé mon problème avec des formules et une
incrémentation manuelle sur 2500 lignes mais j'aurais aimé le faire de
manière plus "classe" via 2 msgbox "combien d'étiquettes" et "combien de
colonnes" et que ça me pose les chiffres dans les cellules. Si quelqu'un a
une idée, ça m'intéresse.
Merci d'avance



*******
Sub etiquet()
NbEtiquettes = CDbl(InputBox("Combien d'étiquette(s)", "Nombre d'étiquette(s)"))
NbColonnes = CDbl(InputBox("Combien de colonne(s)", "Nombre de colonne(s)"))
nbLg = Int(NbEtiquettes / NbColonnes)
If NbEtiquettes Mod NbColonnes <> 0 Then nbLg = nbLg + 1
For i = 1 To NbEtiquettes
For lg = 1 To nbLg
For j = 1 To NbColonnes
Cells(lg, j) = i
If i = NbEtiquettes Then Exit Sub
i = i + 1
Next j
Next lg
Next
End Sub

Ne pas oublier de tester les solutions avec par ex. ce type de valeurs 101
étiquettes et 4 colonnes...

Etc
Avatar
Gilbert
Bonjour,

La même un peu simplifiée

Sub Etiquettes()
Dim NbEtiquettes As Long
Dim NbColonnes As Long
Dim rng As Excel.Range

NbEtiquettes = 10000
NbColonnes = 20
Cells(1, 1) = 1
Cells(2, 1) = NbColonnes + 1
Set rng = Range("A1:A2")
rng.AutoFill Destination:=Range(Cells(1, 1), Cells(2, 20)),
Type:=xlFillSeries
Set rng = Range(Cells(1, 1), Cells(2, 20))
rng.AutoFill Destination:=Range(Cells(1, 1), Cells(NbEtiquettes
NbColonnes, NbColonnes)), Type:=xlFillSeries
End Sub


--
Cordialement,

Gilbert


"Gilbert" a écrit dans le message de
news:%23Uc%
Bonjour

Cette méthode est plus rapide si tu dois remplir de nombreuses cellules,
mais ne te donnera pas le nombre exact d'étiquettes si le nombre de


colonnes
n'est pas un diviseur du nombre d'étiquettes.

Sub Etiquettes()
Dim NbEtiquettes As Long
Dim NbColonnes As Long
Dim ligne As Long
Dim i As Long
Dim j As Long

NbEtiquettes = 10000
NbColonnes = 20
ligne = 1
i = 1
For ligne = 1 To 2
For j = 1 To NbColonnes
Cells(ligne, j) = i
i = i + 1
Next
Next ligne
Range(Cells(1, 1), Cells(2, NbColonnes)).Select
Selection.AutoFill Destination:=Range(Cells(1, 1), Cells(NbEtiquettes
NbColonnes, NbColonnes)), Type:=xlFillDefault

End Sub


--
Cordialement,

Gilbert


"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message


de
news:
> Salut tout le monde, j'ai besoin de vos connaissances. Mon problème :
> je dois faire des étiquettes avec des chiffres de 1 à 10'000 (pour cette
> fois...).
> De A1 à D1 on a 1 2 3 4
> De A2 à D2 on a 5 6 7 8
> etc...
> J'ai temporairement réglé mon problème avec des formules et une
> incrémentation manuelle sur 2500 lignes mais j'aurais aimé le faire de
> manière plus "classe" via 2 msgbox "combien d'étiquettes" et "combien de
> colonnes" et que ça me pose les chiffres dans les cellules. Si quelqu'un


a
> une idée, ça m'intéresse.
> Merci d'avance
> --
> Céd / Lausanne




Avatar
Congelator
Merci à vous 3 ! (même si je ne peux pas lire celui de FFO)...

J'ai adapté vos 2 code pour faire celui-ci qui fonctionne à merveille. Vous
êtes des pros ! un grand merci

Sub Etiquettes()
Dim NbEtiquettes As Long
Dim NbColonnes As Long
Dim ligne As Long
Dim i As Long
Dim j As Long

NbEtiquettes = InputBox("Combien d'étiquette(s)", "Nombre d'étiquette(s)")
NbColonnes = InputBox("Combien de colonne(s)", "Nombre de colonne(s)")

ligne = 1
i = 1
For ligne = 1 To 2
For j = 1 To NbColonnes
Cells(ligne, j) = i
i = i + 1
Next
Next ligne
Range(Cells(1, 1), Cells(2, NbColonnes)).Select

Selection.AutoFill Destination:=Range(Cells(1, 1), Cells(NbEtiquettes
NbColonnes, NbColonnes)), Type:=xlFillDefault

End Sub
--
Céd / Lausanne


"Gilbert" a écrit :

Bonjour

Cette méthode est plus rapide si tu dois remplir de nombreuses cellules,
mais ne te donnera pas le nombre exact d'étiquettes si le nombre de colonnes
n'est pas un diviseur du nombre d'étiquettes.

Sub Etiquettes()
Dim NbEtiquettes As Long
Dim NbColonnes As Long
Dim ligne As Long
Dim i As Long
Dim j As Long

NbEtiquettes = 10000
NbColonnes = 20
ligne = 1
i = 1
For ligne = 1 To 2
For j = 1 To NbColonnes
Cells(ligne, j) = i
i = i + 1
Next
Next ligne
Range(Cells(1, 1), Cells(2, NbColonnes)).Select
Selection.AutoFill Destination:=Range(Cells(1, 1), Cells(NbEtiquettes
NbColonnes, NbColonnes)), Type:=xlFillDefault

End Sub


--
Cordialement,

Gilbert


"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
> Salut tout le monde, j'ai besoin de vos connaissances. Mon problème :
> je dois faire des étiquettes avec des chiffres de 1 à 10'000 (pour cette
> fois...).
> De A1 à D1 on a 1 2 3 4
> De A2 à D2 on a 5 6 7 8
> etc...
> J'ai temporairement réglé mon problème avec des formules et une
> incrémentation manuelle sur 2500 lignes mais j'aurais aimé le faire de
> manière plus "classe" via 2 msgbox "combien d'étiquettes" et "combien de
> colonnes" et que ça me pose les chiffres dans les cellules. Si quelqu'un a
> une idée, ça m'intéresse.
> Merci d'avance
> --
> Céd / Lausanne





Avatar
Congelator
Merci Caetera, ça fonctionne aussi à merveille et même avec des chiffres
impairs. Le top !

--
Céd / Lausanne


"Caetera" a écrit :


"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
> Salut tout le monde, j'ai besoin de vos connaissances. Mon problème :
> je dois faire des étiquettes avec des chiffres de 1 à 10'000 (pour cette
> fois...).
> De A1 à D1 on a 1 2 3 4
> De A2 à D2 on a 5 6 7 8
> etc...
> J'ai temporairement réglé mon problème avec des formules et une
> incrémentation manuelle sur 2500 lignes mais j'aurais aimé le faire de
> manière plus "classe" via 2 msgbox "combien d'étiquettes" et "combien de
> colonnes" et que ça me pose les chiffres dans les cellules. Si quelqu'un a
> une idée, ça m'intéresse.
> Merci d'avance

*******
Sub etiquet()
NbEtiquettes = CDbl(InputBox("Combien d'étiquette(s)", "Nombre d'étiquette(s)"))
NbColonnes = CDbl(InputBox("Combien de colonne(s)", "Nombre de colonne(s)"))
nbLg = Int(NbEtiquettes / NbColonnes)
If NbEtiquettes Mod NbColonnes <> 0 Then nbLg = nbLg + 1
For i = 1 To NbEtiquettes
For lg = 1 To nbLg
For j = 1 To NbColonnes
Cells(lg, j) = i
If i = NbEtiquettes Then Exit Sub
i = i + 1
Next j
Next lg
Next
End Sub

Ne pas oublier de tester les solutions avec par ex. ce type de valeurs 101
étiquettes et 4 colonnes...

Etc





Avatar
FFO
Bonjour garnote

Tout juste, remarque trés pertinente !!!!

Erreur de ma part mais sans conséquence car notre intélocuteur ne s'ai pas
apesanti sur ma solution

Merci pour ton intervention