Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

difficulté avec Visual Basic : paramétrage ?

2 réponses
Avatar
gporte
Bonjour,
question sur Visual Basic
Avec Visual basic 6.3
Et Microsoft Ofice 2003

Cette macro fonctionne
Sub
Rows("7:15").Select
Selection.Insert Shift:=xlDown
Rows("6:6").Select
Selection.AutoFill Destination:=Rows("6:15"), Type:=xlFillDefault

End Sub


Celle-ci ne fonctionne pas
Sub
i = 6
j = 7
k = 15

Rows("j:k").Select
Selection.Insert Shift:=xlDown
Rows("i:i").Select
Selection.AutoFill Destination:=Rows("i:k"), Type:=xlFillDefault

End Sub

l'introduction de paramètres perturbe la macro!
pourquoi ou plutôt comment faire ?
Rows(i) est pris en charge, mais pas Rows(i :k), ni Rows("i:k")….
Merci
gporte

2 réponses

Avatar
michdenis
Bonjour,

C'est simplement une question de syntaxe :
Ta procédure devrait s'écrire comme ceci :
'---------------------------------
i = 6
j = 7
k = 15
Rows(j & ":" & k).Select
Selection.Insert Shift:=xlDown
Rows(i & ":" & i).Select
Selection.AutoFill Destination:=Rows(i & ":" & k), Type:=xlFillDefault
'---------------------------------

Mais ce qui suit est plus avantageux !
- peu importe la feuille active, le code s'effectue comme désirée
- le fait de ne pas sélectionner une plage de cellule augmente la
rapidité d'exécution lorsque l'on effectue plusieurs commandes
consécutives

Tu modifies le nom de la feuille selon ton application
'-------------------------------------
Sub test()
With Worksheets("Feuil1")
.Range("A7").Resize(15).EntireRow.Insert xlDown
.Range("A6").Resize(16).EntireRow.FillDown
End With
End Sub
'-------------------------------------



"gporte" a écrit dans le message de groupe de discussion :

Bonjour,
question sur Visual Basic
Avec Visual basic 6.3
Et Microsoft Ofice 2003

Cette macro fonctionne
Sub
Rows("7:15").Select
Selection.Insert Shift:=xlDown
Rows("6:6").Select
Selection.AutoFill Destination:=Rows("6:15"), Type:=xlFillDefault

End Sub


Celle-ci ne fonctionne pas
Sub
i = 6
j = 7
k = 15

Rows("j:k").Select
Selection.Insert Shift:=xlDown
Rows("i:i").Select
Selection.AutoFill Destination:=Rows("i:k"), Type:=xlFillDefault

End Sub

l'introduction de paramètres perturbe la macro!
pourquoi ou plutôt comment faire ?
Rows(i) est pris en charge, mais pas Rows(i :k), ni Rows("i:k")….
Merci
gporte
Avatar
gporte
michdenis a écrit le 05/02/2010 à 01h32 :
Bonjour,

C'est simplement une question de syntaxe :
Ta procédure devrait s'écrire comme ceci :
'---------------------------------
i = 6
j = 7
k = 15
Rows(j & ":" & k).Select
Selection.Insert Shift:=xlDown
Rows(i & ":" & i).Select
Selection.AutoFill Destination:=Rows(i & ":" & k),
Type:=xlFillDefault
'---------------------------------

Mais ce qui suit est plus avantageux !
- peu importe la feuille active, le code s'effectue comme désirée
- le fait de ne pas sélectionner une plage de cellule augmente la
rapidité d'exécution lorsque l'on effectue plusieurs commandes
consécutives

Tu modifies le nom de la feuille selon ton application
'-------------------------------------
Sub test()
With Worksheets("Feuil1")
.Range("A7").Resize(15).EntireRow.Insert xlDown
.Range("A6").Resize(16).EntireRow.FillDown
End With
End Sub
'-------------------------------------



"gporte" a écrit dans le
message de groupe de discussion :

Bonjour,
question sur Visual Basic
Avec Visual basic 6.3
Et Microsoft Ofice 2003

Cette macro fonctionne
Sub
Rows("7:15").Select
Selection.Insert Shift:=xlDown
Rows("6:6").Select
Selection.AutoFill Destination:=Rows("6:15"), Type:=xlFillDefault

End Sub


Celle-ci ne fonctionne pas
Sub
i = 6
j = 7
k = 15

Rows("j:k").Select
Selection.Insert Shift:=xlDown
Rows("i:i").Select
Selection.AutoFill Destination:=Rows("i:k"), Type:=xlFillDefault

End Sub

l'introduction de paramètres perturbe la macro!
pourquoi ou plutôt comment faire ?
Rows(i) est pris en charge, mais pas Rows(i :k), ni
Rows("i:k")….
Merci
gporte


merci michdenis,
ça marche pour la 1° solution, mais je vais essayer avec la 2°
merci encore
gporte