Copier coller une ligne suivant contenu d'une cellule

Bonjour,

Après de longues heures à parcourir des forums et des tutos, je ne trouve malheureusement pas la solution à mon problème.

Dans le cadre de la gestion d'un entreprise, je souhaite à partir d'un tableau de saisie, alimenter différentes feuilles de ce même classeur, en fonction des données présentes dans certaines cellules mais je n'arrive pas à le faire, même en essayant d'adapter des macros.

Je m'explique:

J'ai un tableau de saisie "feuil1" dans lequel il y a plusieurs lignes représentant des devis et les factures associées.

Dans la colonne C apparait le type de devis "HONO" (honoraires), "AV" (Achat-Vente), "HONO / AV" (Honoraires et achat-Vente)

Je souhaiterai effectuer la saisie sur ce tableau mais que lorsque je complète la cellule C, en fonction du type de devis, la ligne entière se copie et se colle dans une autre feuille:

- Si C = "HONO" --> copier coller dans feuille "Devis HONO"

- SI C = "AV" --> copier coller dans feuille "Devis AV"

etc...

Pouvez vous m'aider svp?

Merci d'avance

38classeur3.xlsx (45.60 Ko)

Bonjour ManonP,

macro à copier sur la page code de Feuil1

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh, LastRw As Long, addr As String
If Target = "" Or Target.Column <> 3 Then Exit Sub
Set sh = Sheets("Devis " & Target)
LastRow = sh.Cells(Rows.Count, 1).End(xlUp).Row
addr = Range(Cells(Target.Row, 1), Cells(Target.Row, Columns.Count - 1)).Address
ActiveSheet.Range(addr).Copy sh.Range("A" & LastRow + 1)
End Sub

Bonsoir,

Merci de votre réponse si rapide.

Quand je lance l'exécution, un message d'erreur s'affiche

"erreur d'execution 424

Objet requis"

Pouvez vous m'indiquer quelle manipulation je dois effectuer?

Merci d'avance

Bonjour ManonP

si vous avez fait le test sur le fichier que j'avais joint,

vous n'avez qu'à réécrire un des nom (HONO ou AV) dans la colonne C de la Feuil1

ce changement dans une des cellules de la colonne C provoquera l'exécution de la macro événementielle Worksheet_Change

si vous avez copier la macro, n'oubliez pas qu'il faut la coller sur la page code de Feuil1 et non pas dans Module1

si le message d'erreur persiste, dit moi quel est la ligne surlignée en jaune lors de l'erreur (bouton:debug)

Bonsoir,

sur la variable LastRow As Long

ajouter un "o" afin que cette ligne de code fonctionne :

LastRow = sh.Cells(Rows.Count, 1).End(xlUp).Row

@ bientôt

LouReeD

LouReeD, merci! pour le suivi

Bonjour,

J'ai bien copié dans la feuil1 et non dans module 1 mais l'erreur continue à s'afficher.

La ligne surlignée est :

If Target = "" Or Target.Column <> 3 Then Exit Sub

Merci de votre aide

pouvez-vous modifier votre ligne par celle-ci et réessayer,

If Target.Value = "" Or Target.Column <> 3 Then Exit Sub 'colonne C = 3

ou bien c'est peu être Target.Column qui n'est pas reconnu par Mac

nouvel essai

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh, LastRw As Long, addr As String
Set isect = Application.Intersect(Target, Range("C:C"))
If isect Is Nothing Or Target.Value = "" Then
   Exit Sub
Else
Set sh = Sheets("Devis " & Target)
LastRow = sh.Cells(Rows.Count, 1).End(xlUp).Row
addr = Range(Cells(Target.Row, 1), Cells(Target.Row, Columns.Count - 1)).Address
ActiveSheet.Range(addr).Copy sh.Range("A" & LastRow + 1)
End Sub
Rechercher des sujets similaires à "copier coller ligne suivant contenu"