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

Insertion d'une ligne

8 réponses
Avatar
John
Bonjour,

Dans un tableau ayant plusieurs sections avec des totaux comment inserer une
ligne en cliquant sur un numéro de ligne tout en recopiant des formules sur
les enregistrements précédents ou suivants.

Avec une macro cela serait simple, le problème et qu'on n'est jamais sur la
même ligne pour l'insertion.
Merci.
--
John.

8 réponses

Avatar
Mishell
Bonjour John.

'Placer le curseur sur une cellule de la ligne à insérer
'avant d'appeler cette macro
Sub InsererUneLigneEtCopierLesFormules()

LigneAInserer = ActiveCell.Row
LigneAuDessus = LigneAInserer - 1

'Insertion d'une ligne vide
r = LigneAInserer & ":" & LigneAInserer
Rows(r).Select

Selection.Insert Shift:=xlDown

'Recopie vers le bas de la formule de la colonne 3
ColonneDeLaFormule = 3
Cells(LigneAuDessus, ColonneDeLaFormule).Select
r1 = ActiveCell.Address
b = InStr(2, Cells(LigneAuDessus, ColonneDeLaFormule).Address, "$")
CelleAuDessous = Mid(Cells(LigneAuDessus, ColonneDeLaFormule).Address, 1, 3)
& LigneAInserer + 1
r = r1 & ":" & CelleAuDessous
Selection.AutoFill Destination:=Range(r), Type:=xlFillDefault
Range(r).Select
'Fin de la recopie de la formule de la colonne 3

'Recopie vers le bas de la formule de la colonne 4
ColonneDeLaFormule = 4
Cells(LigneAuDessus, ColonneDeLaFormule).Select
r1 = ActiveCell.Address
b = InStr(2, Cells(LigneAuDessus, ColonneDeLaFormule).Address, "$")
CelleAuDessous = Mid(Cells(LigneAuDessus, ColonneDeLaFormule).Address, 1, 3)
& LigneAInserer + 1
r = r1 & ":" & CelleAuDessous
Selection.AutoFill Destination:=Range(r), Type:=xlFillDefault
Range(r).Select
'Fin de la recopie de la formule de la colonne 4

End Sub

"John" wrote in message
news:
Bonjour,

Dans un tableau ayant plusieurs sections avec des totaux comment inserer
une
ligne en cliquant sur un numéro de ligne tout en recopiant des formules
sur
les enregistrements précédents ou suivants.

Avec une macro cela serait simple, le problème et qu'on n'est jamais sur
la
même ligne pour l'insertion.
Merci.
--
John.


Avatar
JB
Bonjour,

http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule

JB
http://boisgontierjacques.free.fr


On 30 sep, 13:38, John wrote:
Bonjour,

Dans un tableau ayant plusieurs sections avec des totaux comment inserer une
ligne en cliquant sur un numéro de ligne tout en recopiant des formules sur
les enregistrements précédents ou suivants.

Avec une macro cela serait simple, le problème et qu'on n'est jamais su r la
même ligne pour l'insertion.
Merci.
--
John.


Avatar
John
Merci Mishell.

Je colle le code dans la feuille active ou ?
Encore merci
--
John.



Bonjour John.

'Placer le curseur sur une cellule de la ligne à insérer
'avant d'appeler cette macro
Sub InsererUneLigneEtCopierLesFormules()

LigneAInserer = ActiveCell.Row
LigneAuDessus = LigneAInserer - 1

'Insertion d'une ligne vide
r = LigneAInserer & ":" & LigneAInserer
Rows(r).Select

Selection.Insert Shift:=xlDown

'Recopie vers le bas de la formule de la colonne 3
ColonneDeLaFormule = 3
Cells(LigneAuDessus, ColonneDeLaFormule).Select
r1 = ActiveCell.Address
b = InStr(2, Cells(LigneAuDessus, ColonneDeLaFormule).Address, "$")
CelleAuDessous = Mid(Cells(LigneAuDessus, ColonneDeLaFormule).Address, 1, 3)
& LigneAInserer + 1
r = r1 & ":" & CelleAuDessous
Selection.AutoFill Destination:=Range(r), Type:=xlFillDefault
Range(r).Select
'Fin de la recopie de la formule de la colonne 3

'Recopie vers le bas de la formule de la colonne 4
ColonneDeLaFormule = 4
Cells(LigneAuDessus, ColonneDeLaFormule).Select
r1 = ActiveCell.Address
b = InStr(2, Cells(LigneAuDessus, ColonneDeLaFormule).Address, "$")
CelleAuDessous = Mid(Cells(LigneAuDessus, ColonneDeLaFormule).Address, 1, 3)
& LigneAInserer + 1
r = r1 & ":" & CelleAuDessous
Selection.AutoFill Destination:=Range(r), Type:=xlFillDefault
Range(r).Select
'Fin de la recopie de la formule de la colonne 4

End Sub

"John" wrote in message
news:
Bonjour,

Dans un tableau ayant plusieurs sections avec des totaux comment inserer
une
ligne en cliquant sur un numéro de ligne tout en recopiant des formules
sur
les enregistrements précédents ou suivants.

Avec une macro cela serait simple, le problème et qu'on n'est jamais sur
la
même ligne pour l'insertion.
Merci.
--
John.







Avatar
Mishell
Alt-F11 ou Clic droit sur l'onglet qui porte le nom de la feuille en bas à
gauche et sélectionne "Visualiser le code". Ceci t'amène dans Microsoft
Visual Basic. Là, tu choisis le menu Insertion/Module (pour créer un nouveau
module de code). C'est dans ce module que tu colles le code.

Ensuite, Alt-F11 pour retourner à la feuille.
Pour appeler la procédure (le code), tu places le curseur dans une cellule
de la ligne où tu veux faire l'insertion d'une ligne, puis tu vas dans le
menu Outils/Macros/Macros et tu sélectionnes la macro
"InsererUneLigneEtCopierLesFormules".

Voilà.


"John" wrote in message
news:
Merci Mishell.

Je colle le code dans la feuille active ou ?
Encore merci
--
John.



Bonjour John.

'Placer le curseur sur une cellule de la ligne à insérer
'avant d'appeler cette macro
Sub InsererUneLigneEtCopierLesFormules()

LigneAInserer = ActiveCell.Row
LigneAuDessus = LigneAInserer - 1

'Insertion d'une ligne vide
r = LigneAInserer & ":" & LigneAInserer
Rows(r).Select

Selection.Insert Shift:=xlDown

'Recopie vers le bas de la formule de la colonne 3
ColonneDeLaFormule = 3
Cells(LigneAuDessus, ColonneDeLaFormule).Select
r1 = ActiveCell.Address
b = InStr(2, Cells(LigneAuDessus, ColonneDeLaFormule).Address, "$")
CelleAuDessous = Mid(Cells(LigneAuDessus, ColonneDeLaFormule).Address, 1,
3)
& LigneAInserer + 1
r = r1 & ":" & CelleAuDessous
Selection.AutoFill Destination:=Range(r), Type:=xlFillDefault
Range(r).Select
'Fin de la recopie de la formule de la colonne 3

'Recopie vers le bas de la formule de la colonne 4
ColonneDeLaFormule = 4
Cells(LigneAuDessus, ColonneDeLaFormule).Select
r1 = ActiveCell.Address
b = InStr(2, Cells(LigneAuDessus, ColonneDeLaFormule).Address, "$")
CelleAuDessous = Mid(Cells(LigneAuDessus, ColonneDeLaFormule).Address, 1,
3)
& LigneAInserer + 1
r = r1 & ":" & CelleAuDessous
Selection.AutoFill Destination:=Range(r), Type:=xlFillDefault
Range(r).Select
'Fin de la recopie de la formule de la colonne 4

End Sub

"John" wrote in message
news:
Bonjour,

Dans un tableau ayant plusieurs sections avec des totaux comment
inserer
une
ligne en cliquant sur un numéro de ligne tout en recopiant des formules
sur
les enregistrements précédents ou suivants.

Avec une macro cela serait simple, le problème et qu'on n'est jamais
sur
la
même ligne pour l'insertion.
Merci.
--
John.









Avatar
Mishell
Bonjour JB.

Cette technique ne fonctionne pas dans le cas où la formule fait référence à
une cellule située au-dessus ou en dessous de la ligne insérée.

MiShell


"JB" wrote in message
news:
Bonjour,

http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule

JB
http://boisgontierjacques.free.fr


On 30 sep, 13:38, John wrote:
Bonjour,

Dans un tableau ayant plusieurs sections avec des totaux comment inserer
une
ligne en cliquant sur un numéro de ligne tout en recopiant des formules
sur
les enregistrements précédents ou suivants.

Avec une macro cela serait simple, le problème et qu'on n'est jamais sur
la
même ligne pour l'insertion.
Merci.
--
John.


Avatar
John
Un grand merci à vous deux, vous devez connaitre la méthode inverse c'est à
dire supprimer une ligne avec la même façon "sélection dans une cellule."

Encore merci.
--
John.



Bonjour JB.

Cette technique ne fonctionne pas dans le cas où la formule fait référence à
une cellule située au-dessus ou en dessous de la ligne insérée.

MiShell


"JB" wrote in message
news:
Bonjour,

http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule

JB
http://boisgontierjacques.free.fr


On 30 sep, 13:38, John wrote:
Bonjour,

Dans un tableau ayant plusieurs sections avec des totaux comment inserer
une
ligne en cliquant sur un numéro de ligne tout en recopiant des formules
sur
les enregistrements précédents ou suivants.

Avec une macro cela serait simple, le problème et qu'on n'est jamais sur
la
même ligne pour l'insertion.
Merci.
--
John.








Avatar
Mishell
Sub SupprimerLigneActive()
Rows(ActiveCell.Row).Delete Shift:=xlUp
End Sub


"John" wrote in message
news:
Un grand merci à vous deux, vous devez connaitre la méthode inverse c'est
à
dire supprimer une ligne avec la même façon "sélection dans une cellule."

Encore merci.
--
John.



Bonjour JB.

Cette technique ne fonctionne pas dans le cas où la formule fait
référence à
une cellule située au-dessus ou en dessous de la ligne insérée.

MiShell


"JB" wrote in message
news:
Bonjour,

http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule

JB
http://boisgontierjacques.free.fr


On 30 sep, 13:38, John wrote:
Bonjour,

Dans un tableau ayant plusieurs sections avec des totaux comment
inserer
une
ligne en cliquant sur un numéro de ligne tout en recopiant des formules
sur
les enregistrements précédents ou suivants.

Avec une macro cela serait simple, le problème et qu'on n'est jamais
sur
la
même ligne pour l'insertion.
Merci.
--
John.










Avatar
John
Bonsoir,

Avec les codes si dessous que vous avez donné, tout fonctionnent
parfaitement bien or j'ai quand même un problème, en effet ma feuille est
protégée, plusieurs cellules pour éviter les erreurs de saisies, il faudrais
modifier ces codes de maniére à déprotéger cette feuille au début de l'action
et la vérrouiller dés que le code est fini.

Les codes :
Sub InsèreCopieLigne()
ActiveCell.EntireRow.Insert
Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row)
On Error Resume Next
Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).ClearContents
End Sub

'Pour supprimer une ligne
Sub SupprimerLigneActive()
Rows(ActiveCell.Row).Delete Shift:=xlUp
End Sub



Si vous pouvez un exemple avec un mot de passe "bidon" et un exemple sans.

Un trés grand merci d'avance
--
John.




Sub SupprimerLigneActive()
Rows(ActiveCell.Row).Delete Shift:=xlUp
End Sub


"John" wrote in message
news:
Un grand merci à vous deux, vous devez connaitre la méthode inverse c'est
à
dire supprimer une ligne avec la même façon "sélection dans une cellule."

Encore merci.
--
John.



Bonjour JB.

Cette technique ne fonctionne pas dans le cas où la formule fait
référence à
une cellule située au-dessus ou en dessous de la ligne insérée.

MiShell


"JB" wrote in message
news:
Bonjour,

http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule

JB
http://boisgontierjacques.free.fr


On 30 sep, 13:38, John wrote:
Bonjour,

Dans un tableau ayant plusieurs sections avec des totaux comment
inserer
une
ligne en cliquant sur un numéro de ligne tout en recopiant des formules
sur
les enregistrements précédents ou suivants.

Avec une macro cela serait simple, le problème et qu'on n'est jamais
sur
la
même ligne pour l'insertion.
Merci.
--
John.