IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Transférer une ligne d'une feuille vers une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 116
    Points : 66
    Points
    66
    Par défaut Transférer une ligne d'une feuille vers une autre feuille
    Bonjour,

    J'ai un tableau avec des données sur une Feuille "Investissement", je voudrais que certaines lignes de ce tableau soit transférées vers une autre feuille "Suivi A.Terane" si le chargé de l'opération en colonne J est "AT".

    J'ai mi en place ce code mais cela ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim WsSource As Worksheet
    Dim WsCible As Worksheet
    Dim LigneAjout As Long
    Dim NumLig  As Long
        If Target.Column = 10 Then
            Set WsCible = Worksheets("Suivi A.Terane")
            Set WsSource = Worksheets("Investissement")
            With WsCible
                LigneAjout = .Range("J" & .Rows.Count).End(xlUp).Row + 1
                If Target.Value = "AT" Then
                    Target.EntireRow.Copy Destination:=WsCible.Cells(LigneAjout, 1)
                End If
            End With
            Set WsCible = Nothing
            Set WsSource = Nothing
        End If
    End Sub
    L'erreur qui s'affiche est : "Nom ambigu détecté : Worsheet_change"

    Merci d'avance pour vos réponses

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Ou as-tu copier ce code, il faut le mettre dans l'évènement de la feuille concernée ("Investissement") tu as une variable qui ne set à rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim WsSource As Worksheet
    Le code dans la feuille("investissement") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim WsCible As Worksheet
    Dim LigneAjout As Long
    If Target.Column = 10 Then
      Set WsCible = Worksheets("Suivi A.Terane")
      With WsCible
          LigneAjout = .Range("J" & .Rows.Count).End(xlUp).Row + 1
          If Target.Value = "AT" Then
            Target.EntireRow.Copy Destination:=.Cells(LigneAjout, 1)
          End If
      End With
      Set WsCible = Nothing
    End If
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 116
    Points : 66
    Points
    66
    Par défaut
    Je suis venu sur ce site et j'ai trouvé une discussion qui concernait ce problème.

    J'ai bien mi ce code dans la feuille "Investissement", mais j'ai toujours la meme erreur.

    A noter (j'ai oublié de le préciser) que j'ai déjà un code comme celui la dans cette feuille mais il concerne une autre colonne et permet de transférer les données sur une autre feuille. Lui par contre fonctionne bien.
    Peut-être que le problème vient de la ?

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    A noter (j'ai oublié de le préciser) que j'ai déjà un code comme celui la dans cette feuille mais il concerne une autre colonne
    Donc tu as 2 fois le même code sur la même feuille donc erreur !

    il faut mettre tout ton code sur le meme évènement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim WsCible As Worksheet
    Dim LigneAjout As Long
    If Target.Column = 10 Then
      Set WsCible = Worksheets("Suivi A.Terane")
      With WsCible
          LigneAjout = .Range("J" & .Rows.Count).End(xlUp).Row + 1
          If Target.Value = "AT" Then
            Target.EntireRow.Copy Destination:=.Cells(LigneAjout, 1)
          End If
      End With
      Set WsCible = Nothing
    End If
    If Target.Column = xxx Then
    'code pour l'autre colonne
    End If
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 116
    Points : 66
    Points
    66
    Par défaut
    Ah d'accord je ne savais pas que ce n'était pas possible d'avoir plusieurs fois le même type de code sur la même feuille. Tout s'explique alors !

    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/01/2015, 14h39
  2. [XL-2007] Dupliquer des formules d'une feuille vers les autres feuilles du classeur
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 13/07/2014, 16h25
  3. Réponses: 1
    Dernier message: 29/05/2012, 14h31
  4. [XL-2007] Transféré le contenue d'1 feuille excel vers 1 autre feuille d'un autre fichier
    Par Haaron dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/08/2009, 12h11
  5. [VBA-E]Importer une ligne d'un classeur vers un autre
    Par khiat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/02/2006, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo