1 pièce(s) jointe(s)
Aide à l’amélioration d'une macro
Bonjour,
ayant de besoin d'automatiser un réagencement d'un fichier, je me suis penché sur les macros depuis hier (il faut un début!)
J'arrive à faire ce que je souhaite sur une ligne sélectionnée mais je ne trouve pas comment faire pour que ma macro fonctionne si je sélectionne plusieurs lignes.
Actuellement, il saute la 2eme ligne sélectionnée
Ce que j'ai dans mon excel:
100191106 (Support)0 |
1 |
OP1 Découpe;OP2 Mécanique;OP3 Sablage |
100191106 (Support)1 |
1 |
OP1 Découpe;OP2 Mécanique;OP3 Sablage |
Je veux que ça ressorte comme ça:
100191106 (Support)0 |
1 |
OP1 Découpe |
100191106 (Support)0 |
1 |
OP2 Mécanique |
100191106 (Support)0 |
1 |
OP3 Sablage |
100191106 (Support)1 |
1 |
OP1 Découpe |
100191106 (Support)1 |
1 |
OP2 Mécanique |
100191106 (Support)1 |
1 |
OP3 Sablage |
Ma macro pour une ligne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Sub CollerNb_op()
'Déclaration des variables
Dim numero_ligne As Integer
Dim Tableau_op() As String
Dim Nb_op As Integer
'Valeurs des variables
numero_ligne = Selection.Row
Tableau_op = Split(Range("C" & Selection.Row).Value, ";")
Nb_op = UBound(Tableau_op) + 1
'Instruction
'En fonction de la sélection
'copier&insert
For i = 2 To Nb_op
Selection.Copy
Rows(numero_ligne & ":" & numero_ligne).Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
Next
'Range les OPs
For Nb_op = 0 To UBound(Tableau_op)
Range("C" & Nb_op + numero_ligne) = Trim(Tableau_op(Nb_op))
Next Nb_op
End Sub |
Si quelqu'un peut m'aider à la faire fonctionner pour plusieurs lignes sélectionnées, j'en serais ravi :mrgreen:
(Je suis ouvert à tout critique pour améliorer mon jet fait à coup d'essai et recherche)
Merci d'avance
(PS: Si un gentil modérateur peut déplacer dans la parti "Macro" :) (oui, oui, je n'avais pas vu...)