Insertion d'une ligne

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mishell
Le #4853781
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" 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.


JB
Le #4853761
Bonjour,

http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule

JB
http://boisgontierjacques.free.fr


On 30 sep, 13:38, 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 su r la
même ligne pour l'insertion.
Merci.
--
John.


John
Le #4853711
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" 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.







Mishell
Le #4853641
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" 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" 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.









Mishell
Le #4853621
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" news:
Bonjour,

http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule

JB
http://boisgontierjacques.free.fr


On 30 sep, 13:38, 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.


John
Le #4853581
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" news:
Bonjour,

http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule

JB
http://boisgontierjacques.free.fr


On 30 sep, 13:38, 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.








Mishell
Le #4853551
Sub SupprimerLigneActive()
Rows(ActiveCell.Row).Delete Shift:=xlUp
End Sub


"John" 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" news:
Bonjour,

http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule

JB
http://boisgontierjacques.free.fr


On 30 sep, 13:38, 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.










John
Le #4852631
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" 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" news:
Bonjour,

http://boisgontierjacques.free.fr/pages_site/cellules.htm#InsereLigneFormule

JB
http://boisgontierjacques.free.fr


On 30 sep, 13:38, 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.















Publicité
Poster une réponse
Anonyme