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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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+
 
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+
 
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

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+
 
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
 
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+
 
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
 
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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
453
Retour