Pb Macro excel insertion ligne avec recopie des formules

catchet

XLDnaute Nouveau
Bonjour à tous

Mon pb est le suivant:

J'ai remarqué que lorsque l'on insère une ligne sur un classeur Excel, celle ci ne prend pas en compte les éventuelles formules présentes dans les colonnes.

Aisni j'ai récupéré une macro sur le net mais je n'arrive pas à la faire fonctionner, de plus mes connaisssances en VBA sont nulles donc ça m'aide pas!!

Voici la macro:

'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


Je vous remercie par avance de la précieuse aide que vous pouvez m'apporter!
 

LPandre

XLDnaute Impliqué
Re : Pb Macro excel insertion ligne avec recopie des formules

J'ai l'impression que ma précédente réponse n'est pas passée, je renvoie donc :


Se positionner en dessous de la ligne qui contient les formules des colonnes C et D (3 ème et 4 ème colonne sauf erreur).
Lancer la macro.

NB : j'ai fais un retour sur la colonne A de la ligne insérée, mais il est facile de changer/supprimer cela.

Cordialement.


Sub MacroA()

Dim R As Integer
R = ActiveCell.Row
Rows(R).Select
Selection.Insert Shift:=xlDown
Range("C" & R - 1).Select
Selection.Copy
Range("C" & R).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("D" & R - 1).Select
Selection.Copy
Range("D" & R).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A" & R).Select

End Sub
 

Rapheux

XLDnaute Junior
Re : Pb Macro excel insertion ligne avec recopie des formules

Bonjour,

Je suis actuellement à la recherche du macro identique pour un de mes fichiers sauf que ... (y a toujours un sauf que ! :) )

1) sauf que j'utilise un tableau de gestion d'objet ! Mon tableau est partagé par plusieurs utilisateurs, ce qui fait que pour chaque utilisateurs, j'ai une feuille où ce dernier rentre les info qu'ils doit incrémenter et une feuille final pour récapituler le tout. (ex : premiere feuille la couleur, deuxieme feuille les dimensions, troisieme feuille le poids, etc...).

L'utilisateur de la première feuille sera le seul à insérer la nouvel ligne car il débute le process ! Mais quand il crée la ligne faut que sur les autres feuilles la ligne se cré en attente de recevoir les info.

2) Je voudrais pourvoir copier sur la nouvel ligne, les formules de la colone A à la colone qui termine mon tableau sur la feuille en coure !

J'espére avoir était claire ?

Cordialement,
Rapheux
 

vbacrumble

XLDnaute Accro
Re : Pb Macro excel insertion ligne avec recopie des formules

Bonjour


Si j'ai bien compris la finalité


A partir du code de LPandre

Code:
Sub MacroAA()
Dim R As Long
R = ActiveCell.Row
Rows(R).Insert Shift:=xlDown
Range("C" & R) = Range("C" & R - 1)
Range("D" & R) = Range("D" & R - 1)
End Sub
 

Discussions similaires


Haut Bas