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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Caetera
Le #19531271
"Congelator" 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
Gilbert
Le #19531261
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" 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"

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




Congelator
Le #19531251
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" 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





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

--
Céd / Lausanne


"Caetera" a écrit :


"Congelator" 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





FFO
Le #19531641
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
Publicité
Poster une réponse
Anonyme