bonjour, après de vagues notions de lycée...
j'ai tenté de faire une macro qui a pour but de reprendre des lignes (composés de 4 cases à chaque fois: Ci à Fi) de la Feuil1. Ensuite, est généré un nouvel onglet pour chacune de ces lignes. Seulement le problème c'est que lorsque les feuilles se génèrent, il faudrait que ma macro ne fasse qu'un groupe à la fois. Je m'explique:
La première partie (avec les if imbriqués) va compter combien de lignes ds mon gros tableau nous interesse (ici c'est le groupe "PP AV" qui sert d'exemple). En ressort un "n" avec ce nombre de lignes associé.
La deuxième partie génère les fiches. Seulement, je souhaiterais que la macro se souvienne des lignes ou il y avait ce groupe "PP AV". C'est pourquoi j'avais pensé stoker les valeurs de i dans un tableau puis appeler les valeurs du tableau. Seulement je ne sais pas faire ca... (voir mes notations en vert)
Je pense que vous allez trouver ma macro un peu lourd a lire mais bon, je débute ( ou presque)! J'aurais peut etre pas du faire les deux parties ensemble..Seulement, je ne n'ai pas réussi à rappeller une procédure dans une autre.
Merci si vous pouvez me filer un petit coup de main
Sub Genere_fiches_PP_AV()
Dim n As Integer
Dim i As Integer
n = 0
For i = 1 To 5000
If IsEmpty(Range("A" & i)) Then
n = n
Else
If Range("M" & i) = "PP AV" Then
n = n + 1 ' stoker les valeurs de i dans un tableau
Else
n = n
End If
End If
Next i
If MsgBox("il y aura " & n & " fiches PP AV. Voulez vous les générer?", _
vbQuestion + vbYesNo) = vbNo Then
GoTo LastLine
End If
For i = 2 To n + 1 'reprendre les valeurs de i
Sheets("Feuil1" ).Select
Range("C" & i, "D" & i).Select
Selection.Copy
Sheets("CREP" ).Select
Range("A5 : B5" ).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Feuil1" ).Select
Range("E" & i, "F" & i).Select
Selection.Copy
Sheets("CREP" ).Select
Range("C5 : D5" ).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("CREP" ).Select
Application.CutCopyMode = False
Sheets("CREP" ).Copy After:=Sheets(2)
With ActiveCell.Characters(Start:=1, Length:=6).Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Sheets("CREP (2)" ).Select
Sheets("CREP (2)" ).Name = Range("A5" )
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next i
LastLine:
End Sub