Copier valeur en fonction titre feuille et ligne

Bonjour la commu
Je reprends excel après un très long moment et j'aurai besoin d'un coup de main pour quelques code vba
j'ai un fichier avec

plusieurs feuilles : Liste / Inrise / decot /SIGR

Je voudrai lorsque j'ecris dans la feuille Liste dans une cellule (B15) il recopie dans la feuille en fonction de la colonne C (ici INRISE) dans la feuille correspondante

mais dans la colonne C je peux aussi écrire DECOT ou SIGR et il faut que cela arrive seulement dans la feuille correspondant à la colonne C

en gros un IF C (cellule i,x) = Inrise then il copie la ligne avec les valeur de la colonne D et E dans la feuille INRISE et dans une cellule (que je pourrai modifier dans le code VBA)

Voici le fichier
Merci

17inrise.xlsx (12.38 Ko)

beaucoup

Bonjour,

Si c'est pour recopier toujours sur la ligne 15 des différentes feuilles, pas besoin de code VBA, mais est-ce bien cela ou bien, faut-il ajouter les informations à la suite de celles déjà existantes?

Cdlt

Bonjour

merci de me répondre

En fait non je vais devoir incrémenter a chaque fois

je vais ensuite rajouter une ligne en B16 / B17 etc..
Pour faire un tableau au final
Et cela s'affichera sur la ligne correspondante et la feuille correspondant à la colonne C
Donc en cellule B16 j'ecris : test ; en C16 : INRISE cela affichera les valeurs de cette ligne dans la feuille correspondant (Ici INRISE) mais pas forcement en ligne B16 (sur la feuille INRISE) mais ligne +1 qui a déja une valeur
Si dans la feuille INRISE la dernière ligne non vide est en A16 cela s'affichera sur la ligne B

Si j'ecris : test2 en B25 et c25 : DECOT cela s'affichera en feuille DECOT sur la dernière ligne non vide
Je ne sais pas si je suis assez clair
Désolé

Voici le fichier, dés que vous aurez saisi le nom de la feuille destinataire, les données seront recopiés dans la feuille concernée, il faut donc que vous remplissiez d'abord les 3 autres cellules et finissez par le nom de la feuille en colonne C.

Cdlt

Merci pour votre réponse

Cependant je vous renvoie un fichier excel pour vous montrez un peu mieux ce que je recherche

c'est lorsque j'ecris dans liste en colonne C inrise / decot ou sigr

il va placer les valeurs comme dans dans les feuilles du fichier inrise 2

Merci beaucoup

18inrise2.xlsx (13.07 Ko)

Bonjour,

Quand vous mettez un fichier à disposition, faites-le comme il faut, car vous aviez parlé de la ligne 15 de la feuille liste, or maintenant, on part de la ligne 1 et c'est une liste de valeurs. De même, vous n'êtes pas précis sur la première ligne de destination des autres feuilles, alors j'ai choisi la ligne2 comme première ligne.

Dès que vous validerez la valeur saisie en colonne C de la feuille "liste", aussitôt les valeurs seront reportées dans la feuille indiquée.

Cdlt

Bonjour

Merci encore pour vos réponses

Cependant lorsque j'écris dans liste cela n'affiche pas les valeurs dans les colonnes respectives ou alors je n'ai pas activé quelque chose?

Et est-il possible de choisir à partir de quel ligne se lance la macro? par exemple ligne 8

Merci bien

Cordialelement

Bonjour,

Cependant lorsque j'écris dans liste cela n'affiche pas les valeurs dans les colonnes respectives ou alors je n'ai pas activé quelque chose?

Je reprends ce que j'ai écrit le 18/07 à 9h53:
"Voici le fichier, dés que vous aurez saisi le nom de la feuille destinataire, les données seront recopiés dans la feuille concernée, il faut donc que vous remplissiez d'abord les 3 autres cellules et finissez
par le nom de la feuille en colonne C."**************************************************************************************************************

Et est-il possible de choisir à partir de quel ligne se lance la macro? par exemple ligne 8. OUI
Voici la macro modifiée qui ne s'exécutera que si la cellule sélectionnée se trouve à la ligne 8 ou au-delà et les valeurs ne seront recopiées que si les 4 données sont remplies, mais la cellule qui déclenchera la macro est toujours la cellule en colonne C, donc c'est dans celle-ci qu'il faudra saisir en dernier la valeur("INRISE, DECOT, ou SIGR")

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim f2 As Worksheet
    Dim DerLig_f2 As Long
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Target.Column <> 3 Or Target.Value <> "" And Target.Row >= 8 Then
        Set f2 = Sheets(Target.Value)
        DerLig_f2 = f2.Range("G" & Rows.Count).End(xlUp).Row + 1
        If DerLig_f2 < 2 Then DerLig_f2 = 2
        If Target.Offset(0, -1).Value <> "" And Target.Offset(0, 1).Value <> "" And Target.Offset(0, 2).Value <> "" Then
            f2.Range(f2.Cells(DerLig_f2, "D"), f2.Cells(DerLig_f2, "G")).Value = Range(Cells(ActiveCell.Row, "B"), Cells(ActiveCell.Row, "E")).Value
        End If
    End If
Sortie:
    Application.EnableEvents = True
End SubAu lieu de faire déclencher la macro 
On peut aussi faire déclencher la macro après saisie la valeur de la dernière colonne plutôt que la valeur de la colonne C, c'est à vous de me dire.


Cdlt

Ah parfait

Merci beaucoup de votre aide

edit :

Oui si possible car la dernière cellule qui sera rempli sera la E dans liste

Merci

Bonjour
"On peut aussi faire déclencher la macro après saisie la valeur de la dernière colonne plutôt que la valeur de la colonne C, c'est à vous de me dire."

Oui ca serait parfait

Est-il possible aussi de choisir dans la macro où on affichera les valeurs en € ?

en colonne P ou Z par exemple en fonction des besoin
Merci bien

Bonjour,

Déclenchement de la macro après saisie de la valeur de la dernière colonne

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim f2 As Worksheet
    Dim DerLig_f2 As Long
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Target.Column = 5 And Target.Value <> "" And Target.Row >= 8 Then
        Set f2 = Sheets(Target.Value)
        DerLig_f2 = f2.Range("G" & Rows.Count).End(xlUp).Row + 1
        If DerLig_f2 < 2 Then DerLig_f2 = 2
        If Target.Offset(0, -1).Value <> "" And Target.Offset(0, 1).Value <> "" And Target.Offset(0, 2).Value <> "" Then
            f2.Range(f2.Cells(DerLig_f2, "D"), f2.Cells(DerLig_f2, "G")).Value = Range(Cells(ActiveCell.Row, "B"), Cells(ActiveCell.Row, "E")).Value
        End If
    End If
Sortie:
    Application.EnableEvents = True
End Sub

***************************************************************************************************************************
Est-il possible aussi de choisir dans la macro où on affichera les valeurs en € ? en colonne P ou Z par exemple en fonction des besoin

Quelle valeur copier en P ou Z et qu'est-ce qui déterminera le choix de la colonne? quand au format, appliquez le format "Comptabilité" sur ces 2 colonnes.

Cdlt

Bonjour
Pardon pour la réponse tardive
Les valeurs sont des valeurs numériques et spécifiquement monétaire €
Ce qui peut determiner le choix de la colonne est le nom de la feuille par exemple : les deux valeurs de la colonne D et E de la feuille liste peuvent etre en P et Z sur la feuille DECOT mais rester en D et E sur la feuille INRISE
Cela dependra des changements sur ces feuilles
Merci beaucoup pour votre aide

Bonjour,

Actuellement, il y a 4 colonnes, les 2 colonnes des montants D et E de la feuille "Liste" pourront aller dans d'autres colonnes des feuilles de destination mais, les valeurs des colonnes B et C, dans quelles colonnes doivent-elles aller?

Pour bien diriger les valeurs dans les bonnes colonnes, il faut leur donner un titre à chacune d'elle, ainsi on pointera les valeurs directement dans les bonnes colonnes quelle que soit la feuille de destination. Alors, quels sont les titres de ces colonnes?

Cdlt

Rebonjour

Voila j'ai refait le fichier avec les bonnes colonnes (emplacement ou doit se trouver les valeurs) et noms

il faut en fait lorsque je tape INRISE ou Decot ou SIGR en colonne G de la feuille 'liste" il affiche le nom du client le budge initial et budget 2024 dans les cases des feuilles correspondantes

Désolé pour le message d'erreur des formules s'il y a

Merci bien

J'ai oublié de dire que la macro doit se lancer a la dernière valeur mise dans la feuille liste (ce sont des euros)
donc en colonne "I" de la feuille liste

Merci beaucoup

Bonjour,

Attention, le nom de l'onglet de la feuille "INRISE" contient un espace à la fin (veuillez le supprimer sinon cela génère une erreur)

Le code:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim f2 As Worksheet
    Dim DerLig_f2 As Long
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Target.Column = 9 And Target.Value <> "" And Target.Row >= 2 Then
        Set f2 = Sheets(Target.Offset(0, -2).Value)
        DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row + 1 'A dernière ligne rempli des feuilles
        If DerLig_f2 < 2 Then DerLig_f2 = 3
        f2.Cells(DerLig_f2, "A") = Cells(Target.Row, "F") 'nom du client
        f2.Cells(DerLig_f2, "O") = Cells(Target.Row, "H") 'Budget initial
        f2.Cells(DerLig_f2, "R") = Cells(Target.Row, "I") 'Budget annuel
    End If
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

Merci beaucoup
C'est parfait

Une très bonne journée a vous

Bien cordialement

Rechercher des sujets similaires à "copier valeur fonction titre feuille ligne"