Generation d'une liste en fonction de chiffres dans une ligne

Mline -  
Mline- Messages postés 2 Statut Membre -
Bonjour,
Dans le cadre de mon travail, je cherche a générer une liste en fonction de résultats dans une ligne...j'ai beau chercher je n'arrive pas à l'expliquer plus clairement.
J'ai un premier tableau où j'écris sur une ligne la decoupe d'une piece en bouts de 60cm, 70cm, etc....Et j'aimerai au final pouvoir avoir une liste de ses bouts (si possible ingrémentée).
et mes connaissances Excel sont plus que dépassées pour ce cas là...

Exemple :

---------| 60 cm| 70 cm | 80cm | 100 cm | 120cm
piece A | -- 2-- | -------- |-- 3 ---- | -------| --- 4 --|
piece B | ---- --| -- 5 ----| --- 2--- | -------| --------|

Et j'aimerai obtenir:

pieceA.1 | 60cm
pieceA.2 | 60cm
pieceA.3 | 80cm
pieceA.4 | 80cm
pieceA.5 | 80cm
pieceB.1 | 70cm
Etc,

Je pense que l'exemple est plus edifiant que le titre...

J'ai hate de voir si vous trouvez une solution (formule ou code, sachant que j'aimerai derrière en faire une macro),
Merci d'avance
A voir également:

6 réponses

ccm81 Messages postés 11033 Statut Membre 2 433
 
1. Tu as bien sûr Commentçamarche qui te propose pas mal d'outils en plus du forum (où tu devrais t'inscrire ...)
Tu as aussi
http://boisgontierjacques.free.fr/
https://www.developpez.com/

2. Si tu veux que je te commente le code de la macro tu dis

3. Peux tu mettre le problème à Résolu (en haut à droite de ton premier message)

Bon courage
1
Mline- Messages postés 2 Statut Membre
 
1. Merci / inscription faite
2. Avec plaisir si ca ne t'embete pas trop
3. Je n'ai pas moyen de passer en résolu..comme je n'etais pas inscrite j'imagine que l'identification se fait avec l'IP et comme je l'ai fait à mon taf et qu'on est en IP flottante....ca ne doit pas me reconnaitre..
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
le même avec quelques explications
https://www.cjoint.com/?3JqlSQnzBbG

bonne journée
0
Mline- Messages postés 2 Statut Membre
 
Merci beaucoup et désolée pour le remerciement tardif...malheureusement je n'ai pas eu de temps à y consacrer aujourd'hui,
Ca va bien m'aider à comprendre la logique et éventuellement copier quelques lignes pour d'autres macros
Encore merci et bonne soirée
0
Lentzouille Messages postés 728 Statut Membre 64
 
Bonjour,

Je ne capte pas grand chose à ton exemple, tu devrais avoir 3 A et 2 B et en finalité il y a 5 A et 1 B ??

Cdt,
0
Mline
 
Désolée, je me doute que c'est pas très clair..

La piece A est coupée en deux bouts de 60cm, trois bouts de 80cm et 4 bouts de 120cm.
J'aimerais donc obtenir une liste des bouts (en incrementant le nom de la piece) dans une colonne et leurs largeurs dans une autre colonne

pieceA.1 | 60cm
pieceA.2 | 60cm
pieceA.3 | 80cm
pieceA.4 | 80cm
pieceA.5 | 80cm
pieceA.6 | 120cm
pieceA.7 | 120cm
etc

Est ce plus compréhensible ??
0
Mline
 
Au final je devrai avoir 9 bouts de la piece A et 7 bouts de la piece B...j'ai pas fait toute la liste...
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Bonjour à tous les deux

Une proposition via macro
https://www.cjoint.com/?3JkspQ7d8qm

Bonne suite
0
Mline
 
Parfait !
Bon je suis pas une pro des macros mais je vais essayer de comprendre comment elle marche quand même !
En tout cas un énorme merci, ça marche super bien !!
0
Mline
 
Bonjour ccm81,

J'ai essayé d'appliquer votre macro à mon fichier mais je bloque un peu et la macro est bloquée par cette ligne :
For nup = 1 To nbp
J'ai un peu cherché sur internet à quoi correspond nup mais sans succès...et vous êtes le mieux placer pour me répondre,

Aussi j'aimerai que le resultat de la macro se cumule a une liste déjà existante, j'imagine qu'il faut modifier le = 1 dans la ligne :
Const lidebFB = 1
Mais je ne sais pas comment l'indiquer (Const lidebFB = Cells(Rows.Count, 1).End(x1Up)(2)
??)

Merci d'avance pour vos explications,
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Aussi j'aimerai que le resultat de la macro se cumule a une liste déjà existante, j'imagine qu'il faut modifier le = 1 dans la ligne :
Const lidebFB = 1


Si j'ai compris
Tu veux que la macro envoie les résultats à partir de la première ligne vide dans la feuille but (FB)
Dans ce cas
1. tu supprimes la ligne de définition de la constante lidebFB
Const lidebFB = 1
2. tu déclares lidebFB dans la liste des variables
Dim lidebFB as long
3. tu définis la valeur de lidebFB (presque) comme tu as fait
lidebFB = .Cells(Rows.Count, coFB).End(x1Up)+1

Si ça ne correspond pas, tu envoies une partie significative de ton fichier (au format excel 2003) sur cjoint.com avec quelques explications, et tu joins le lien obtenu à ton prochain message

Cordialement
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
petite modif

lidebFB = Sheets(FB).Cells(Rows.Count, coFB).End(x1Up)+1
0
Mline
 
Arrg, je m'en sors pas,
J'ai essayé d'appliquer la macro à mon vrai fichier et en plus de rajouter le fait qu'a chaque "coupe" les nouvelles lignes se creent à la suite des autres mais ca ne marche pas....
Je ne suis definitivement pas douée

http://cjoint.com/?0JoqqoOn7Nb

Vous pouvez jeter un oeil ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 11033 Statut Membre 2 433
 
Arrg, je m'en sors pas,
Pas étonnant que ma procédure ne fonctionne pas, les données ne se présentent plus comme dans ta demande initiale
Il faut tout reprendre, je regarde ça, mais pas avant demain

Question. Dans la feuille "Coupe piece" la saisie se fait TOUJOURS en ligne 4

RQ. Inscris toi comme membre de CCM, c'est gratuit et ça facilite l'accès aux fichiers joints
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Bonjour

Un début de réponse?
https://www.cjoint.com/?3JplB4XOvsM

Bonne suite
0
Mline
 
Super! C'est meme plus qu'un début, c'est la réponse !

J'aurais beaucoup de choses à rajouter dans ce fichier mais cette macro c'était vraiment la plus grosse partie, je vais pouvoir bien avancer maintenant (bon lentement certes).

J'ose poser une dernière question, est ce que vous me recommanderiez un livre ou un site pour apprendre/comprendre le language VBA ?

Un grand merci en tout cas,
Cdlt,
0