Bonjour,
J'ai créée un bouton pour ajouter une ligne, je voudrais y associer un code pour que le curseur de la souris se positionne automatiquement en début de cette ligne insérée.
Voici mon codage :
VB:
Sub Bouton1_Cliquer()
Dim DLig As Long
With ActiveSheet
.Unprotect
DLig = .Range("B" & Rows.Count).End(xlUp).Row
Dim i%
i = [Ligne_total_amort].Row - 1
With Rows(i)
.Copy
.Insert Shift:=xlDown
.Hidden = False
End With
Application.CutCopyMode = False
End With
End Sub
Sans fichier pour voir ton code qui me semble tortueux je te propose ceci
VB:
Sub Bouton1_Cliquer()
Dim DLig As Long
With ActiveSheet
.Unprotect
DLig = .Range("B" & Rows.Count).End(xlUp).Row
Dim i%
i = [Ligne_total_amort].Row - 1
With Rows(i)
.Copy
.Insert Shift:=xlDown
.Hidden = False
End With
Application.CutCopyMode = False
Range("A" & i + 1).Select
End With
End Sub
Tu déproteges ta feuille mais tu ne la reproteges pas !!! Bizarre
Avec ton fichier et une explication de ce que tu veux faire serais largement plus efficace ......
Sans fichier pour voir ton code qui me semble tortueux je te propose ceci
VB:
Sub Bouton1_Cliquer()
Dim DLig As Long
With ActiveSheet
.Unprotect
DLig = .Range("B" & Rows.Count).End(xlUp).Row
Dim i%
i = [Ligne_total_amort].Row - 1
With Rows(i)
.Copy
.Insert Shift:=xlDown
.Hidden = False
End With
Application.CutCopyMode = False
Range("A" & i + 1).Select
End With
End Sub
Tu déproteges ta feuille mais tu ne la reproteges pas !!! Bizarre
Avec ton fichier et une explication de ce que tu veux faire serais largement plus efficace ......
Insérer une ligne avant la dernière utilisée en colonne "B"
et positionner le carret (mode Edition de la cellule)en effaçant la donnée copiée de la new cell en "B"
VB:
Sub Next_LastCellCarret()
Dim LastLig&
With ActiveSheet
'.Unprotect
LastLig = .Cells(Rows.Count, "B").End(xlUp).Row
With Rows(LastLig)
.Copy: .Insert Shift:=xlDown: .Hidden = False
End With
Application.CutCopyMode = False
.Cells(LastLig, "B").Select
End With
CreateObject("wscript.shell").SendKeys "{DELETE 100} {F2} {left 100}"
End Sub
OPTIONS
si l'on veut pas effacer la donnée il faut retirer {DELETE 100}
si l'on veut pas revenir au debut du texte il faut retirer {left 100}
pour cet exemple ,je ne me suis pas occupé du unprotect/protect
Sans fichier pour voir ton code qui me semble tortueux je te propose ceci
VB:
Sub Bouton1_Cliquer()
Dim DLig As Long
With ActiveSheet
.Unprotect
DLig = .Range("B" & Rows.Count).End(xlUp).Row
Dim i%
i = [Ligne_total_amort].Row - 1
With Rows(i)
.Copy
.Insert Shift:=xlDown
.Hidden = False
End With
Application.CutCopyMode = False
Range("A" & i + 1).Select
End With
End Sub
Tu déproteges ta feuille mais tu ne la reproteges pas !!! Bizarre
Avec ton fichier et une explication de ce que tu veux faire serais largement plus efficace ......
Super ta réponse qui a résolu mon problème.
Pour l'instant la feuille n'est pas encore protégée parce que le tableau est à l'état de conception. Effectivement il faudra que je rajoute la re-protection de la feuille de calcul.
Merci encore pour ta réactivité
Bonne journée
Insérer une ligne avant la dernière utilisée en colonne "B"
et positionner le carret (mode Edition de la cellule)en effaçant la donnée copiée de la new cell en "B"
VB:
Sub Next_LastCellCarret()
Dim LastLig&
With ActiveSheet
'.Unprotect
LastLig = .Cells(Rows.Count, "B").End(xlUp).Row
With Rows(LastLig)
.Copy: .Insert Shift:=xlDown: .Hidden = False
End With
Application.CutCopyMode = False
.Cells(LastLig, "B").Select
End With
CreateObject("wscript.shell").SendKeys "{DELETE 100} {F2} {left 100}"
End Sub
OPTIONS
si l'on veut pas effacer la donnée il faut retirer {DELETE 100}
si l'on veut pas revenir au debut du texte il faut retirer {left 100}
pour cet exemple ,je ne me suis pas occupé du unprotect/protect
Merci beaucoup pour ton retour.
La solution de Phil69970 a fonctionné parfaitement, mais je garde de côté la tienne qui pourra certainement me servir dans l'avenir.
Très bonne journée