Bonjour,
Je tente d'inserrer une ligne dans une worksheet, le sais que le code est tres simple car je l'ai utilise une vingtaine de fois dans ma base de donnee mais ici ce code ne semble plus fonctionner :
Je m'explique :
Voici mon code :
Lorsque je lance la macro en pas a pas ou normalement, la macro m'insere 4 lignes au lieu d'une et surtout a la mauvaise place.
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 Private Sub CommandButton1_Click() 'Add a new engine ' Write a new engine ActiveSheet.Unprotect Range("8:8").Select If Range("C4").Value <> "" Then If Range("D4").Value <> "" Then Selection.Insert Shift:=xlDown Range("C4:D4").Select Selection.Copy Range("C8").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' ------------------ Writting in Complete list Sheets("COMPLETE LIST").Visible = True Sheets("COMPLETE LIST").Select ActiveSheet.Unprotect ' Document numbers writting loop ActiveSheet.Rows("8:8").Select Selection.Insert Shift:=xlDown Sheets("NEW ENGINE").Select Range("C4:D4").Select Selection.Copy Sheets("COMPLETE LIST").Select ActiveSheet.Range("C8").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveSheet.Range("E8").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "BLUID SHEET" ActiveSheet.Range("F8").Select ActiveCell.FormulaR1C1 = "BS" ActiveSheet.Range("G8").Select ActiveCell.FormulaR1C1 = "1" ActiveSheet.Range("H8").Select ActiveCell.FormulaR1C1 = [C8] & "" & "-" & [F8] & "" & "-" & [G8] ActiveSheet.Range("I8").Select ActiveCell.FormulaR1C1 = "BUILD SHEET SUBSET" ActiveSheet.Range("H8").Select End sub
Voici un imprime ecran de mon probleme :
Je sais tres bien que la ligne de code ActiveSheet.Rows("8:8").Select ne selectionne que les lignes allant de la ligne 8 a 8, donc seulement la ligne 8. Si j'avais vraiment voulu selectionner ce qu'il y a dans mon imprime ecran j'aurai mi ActiveSheet.Rows("5:8").Select.
Alors je comprends vraiment pas ce qui se passe.
Pourriez vous m'aider ?
Amicalement
Partager