bonjour a vous
je voudrais que ce code soit modifié afin de pouvoir créer des pages dans la feuille et non des feuilles comme le fait ce code que m'a gentiment donné zyhack
merci de votre compréhension et si vous avez des questions n'hesiter pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 For boucle = 2 To 255 'Vérifier si une autre feuille facturation existe nomFeuille = "facturation(" & boucle & ")" On Error Resume Next test = Sheets(nomFeuille).Name On Error GoTo 0: Err.Clear If test <> nomFeuille Then 'la feuille n'existe pas il faut la créer Set nouvellefeuille = Worksheets.Add(after:=Worksheets(Worksheets.Count)) nouvellefeuille.Name = nomFeuille 'Collage des ligne à reporter 'en-tête Sheets("facturation").Rows(LigneMinFact1 - 3 & ":" & LigneMinFact1 - 1).Copy nouvellefeuille.Rows(LigneMinFactS - 3 & ":" & LigneMinFactS - 1).PasteSpecial Paste:=xlPasteValues nouvellefeuille.Rows(LigneMinFactS - 3 & ":" & LigneMinFactS - 1).PasteSpecial Paste:=xlPasteFormats 'Format tableau des lignes Sheets("facturation").Rows(LigneMinFact1).Copy nouvellefeuille.Rows(LigneMinFactS).PasteSpecial Paste:=xlPasteFormats 'les deux dernieres ligne Sheets("facturation").Rows(LigneMaxFact1 & ":" & LigneMaxFact1 + 1).Copy nouvellefeuille.Rows(LigneMinFactS + 1 & ":" & LigneMinFactS + 2).PasteSpecial Paste:=xlPasteFormats 'Largeur des colonnes Sheets("facturation").Cells.Copy nouvellefeuille.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths 'Réécriture des formules With nouvellefeuille .Range("L" & LigneMinFactS + 2).FormulaLocal = "=SOMME(L" & LigneMinFactS & ":L" & LigneMinFactS + 1 & ")" .Range("O" & LigneMinFactS + 2).FormulaLocal = "=SOMME(O" & LigneMinFactS & ":O" & LigneMinFactS + 1 & ")" .Range("P" & LigneMinFactS + 2).FormulaLocal = "=SOMME(P" & LigneMinFactS & ":P" & LigneMinFactS + 1 & ")" End With LigneSuivante = nomFeuille & "," & LigneMinFactS 'comme la feuille vient d'être créé on sait ou ecrire donc quitter la fonction Exit Function Else 'chercher si une ligne est vide dans la feuille facturation(x) With Worksheets(nomFeuille) For Each Cellule In .Range(.Cells(LigneMinFactS, 3), .Cells(LigneMaxFactS, 3)) If Cellule = "" Then LigneSuivante = nomFeuille & "," & Cellule.Row Exit For End If Next If Not Cellule Is Nothing Then _ If Cellule.Row > LigneMinFactS And Cellule.Row < LigneMaxFactS Then .Rows(Cellule.Row).Insert Shift:=xlDown 'si une ligne vide est trouvé -> sortir If LigneSuivante <> "" Then Exit Function End With End If Next End Function
cordialement
Pascal
Partager