XL 2013 créer une file de mots (dans une colonne)

boeselager

XLDnaute Nouveau
Bonjour à tous

Je souhaite pouvoir créer automatiquement une file qui peut être très longue (en l’occurrence ça sera une file que je vais exporter dans une feuille excel ) à partir de deux informations :

1) les mots composant la file en colonne A
2) leur répétition en colonne B ( ou quantité si vous préférez )

ci joint le fichier excel pour bien illustrer mon besoin

merci à vous
 

Pièces jointes

  • file d'impression.xlsx
    10.2 KB · Affichages: 55

Shakki

XLDnaute Occasionnel
Bonjour,

Essaye avec ce code.
VB:
Sub MaFile()

Application.ScreenUpdating = False

ligne = 2
Range("D2:D65000").ClearContents

For lig = 2 To Range("B65000").End(3).Row
    For  i = 1 To Cells(lig, 2)
    Range("D" & ligne).Value = Range("A" & lig).Value
    ligne = ligne + 1
    Next
Next

End sub

A+
 

Paf

XLDnaute Barbatruc
Bonjour boeselager, Shakki,

une autre version

Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
ligne = 2
Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row).ClearContents
For lig = 2 To Range("B" & Rows.Count).End(xlUp).Row
    Range("D" & ligne).Resize(Cells(lig, 2), 1) = Range("A" & lig).Value
    ligne = ligne + Cells(lig, 2)
Next
Application.ScreenUpdating = True
End Sub

A+
 

Shakki

XLDnaute Occasionnel
Re,

Fais Alt+F11. Tu arrives sur VBA. Là, tu vas dans le menu Insertion et tu choisis Module.
Tu copies l'un des deux codes proposés.
Et tu enregistres ton fichier au format xlsm (pour que la macro soit prise en charge)

Pour activer la macro dans ton fichier : Alt+F11 et une fois dans le module tu fais F5.
Tu peux aussi utiliser un bouton pour faire appel à la macro comme dans le fichier ci-joint.

A+
 

Pièces jointes

  • file d'impression.xlsm
    25.7 KB · Affichages: 51

Paf

XLDnaute Barbatruc
re,

J'ai laissé mon code tel qu'affecté à un bouton control (CommandButton)

pour l'adapter en macro et suivre les indications de Shakki, il faudrait modifier la première ligne:
Code:
Private Sub CommandButton1_Click()
en
Code:
Sub boeselager()

NB: attention les range et cells ne sont pas référencé à une feuille. La macro s'exécutera sur la feuille active.

A+
 

boeselager

XLDnaute Nouveau
ca y est
j'ai trouvé pour activer les macros et ça marche
merci

2 dernières questions ( je l’espère )

la première : le bouton est obligé ??
la file ne peut pas se constituer automatiquement lorsque que la case relative aux Qté est renseignée ?


la seconde : comme ce fichier va être transmis à des clients; j'ai bien peur qu'ils n'acceptent pas d'activer des macros ...
il n'y a pas moyen d'utiliser des formules " excel " ( pas de macros ...en fait )


merci pour votre aide
 

Shakki

XLDnaute Occasionnel
Bonjour,

Le bouton n'est pas nécessaire. Comme dit plus haut, c'est juste une possibilité pour lancer une macro sans entrer dans la fenêtre VBA (Alt F11 et F5).

Faire ce que tu demandes avec des formules, c'est peut-être possible, mais très honnêtement je ne vois pas comment.

Je laisse les experts en formules prendre le relai.

A+
 

Staple1600

XLDnaute Barbatruc
Bonsoir à tous


Une solution par formules
(avec colonnes supplémentaires)
Ici la recopie incrémentée en colonne D va jusqu'à 8 parce que : 1+4+3=8

parformule.jpg
 

boeselager

XLDnaute Nouveau
Bonjour à tous
Double zero , je ne comprends pas ta remarque ...j'ai tjrs remercié les personnes qui m'ont apporté leur soutien.. " sauf pour STAPLE1600 " c'est vrai et j'en suis désolé mais c'est un simple oubli


Le fichier excel que m'avait transmis SHAKKI répondait parfaitement à mon besoin
mais il y a du nouveau...
puisque je peux avoir jusqu' à 8 colonnes

ci joint le fichier Excel qui explique précisément mon Besoin

Je vous remercie par avance de vos réponses ; du tps que vous allez me consacrer pour y répondre et de votre Altruisme
 

Pièces jointes

  • file d'impression créée automatiquement.xlsx
    11.8 KB · Affichages: 30

Shakki

XLDnaute Occasionnel
Bonjour,

Ci-joint un essai avec macro vite fait. Il te suffit d'appuyer sur le bouton OK. Ça va jusqu'à la ligne 65000 mais rien ne t’empêche de modifier en mettant un autre chiffre. De même, si tu veux plus de colonnes, il faudra que tu changes les débuts et fins de colonnes (B et I / K et R).

VB:
Sub MaFile()

Application.ScreenUpdating = False

Range("K3:R65000").ClearContents
ligne = 3

For lig = 3 To Range("I65000").End(3).Row
    For lgn = 1 To Cells(lig, 1)
    Range("K" & ligne & ":R" & ligne).Value = Range("B" & lig & ":I" & lig).Value
    ligne = ligne + 1
    Next
Next

End Sub

A+
 

Pièces jointes

  • file d'impression créée automatiquement.xlsm
    18.3 KB · Affichages: 33

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth