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 :

Copier les valeurs d'une ligne dans un autre onglet selon la valeur d'une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Par défaut Copier les valeurs d'une ligne dans un autre onglet selon la valeur d'une cellule
    Bonjour tout le monde,

    Alors je suis une novice en Google Sheet (et excel d'ailleurs) donc je vais essayer d'être la plus claire possible...

    Mon fichier contient plusieurs onglets : "Processus" et "Actions à mener".

    Dans "Processus", l'une des colonnes contient une mise en forme conditionnelle (jaune si "oui", rose si "à voir", pas de mise en forme si "non").
    J'aimerais que, lorsque les cases de cette colonne contiennent "Oui" ou "à voir", certaines données de la ligne correspondante se copient automatiquement dans l'onglet "Actions à mener".
    MAIS EN PLUS (oui parce que ce n'est déjà pas assez compliqué comme ça), la colonne B par exemple de la première feuille ne correspond pas forcément à la colonne B de la seconde.

    Désolée si je n'ai pas été très claire, je peux vous joindre des impr. écran du fameux tableau si besoin...

    Je vous remercie d'avance, et encore désolée

    Léonie

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Redphoeniiix Voir le message
    J'aimerais que, lorsque les cases de cette colonne contiennent "Oui" ou "à voir", certaines données de la ligne correspondante se copient automatiquement dans l'onglet "Actions à mener".
    A quelle moment cette action doit-elle avoir lieu ? Lors de la saisie du "Oui" ? Par déclenchement par un bouton qui scrute toutes les lignes ayant "Oui" ? Doit-on copier toutes les lignes contenant "Oui" ou simplement celle qui n'ont pas encore été copiées ?

    Quelles données sources doivent être copiées ?
    A quelle position de la destination doivent-elles être copiées ?

    Il faudrait que tu sois plus précises sur ton processus.

    Désolée si je n'ai pas été très claire, je peux vous joindre des impr. écran du fameux tableau si besoin...
    Ce serait mieux, en effet, pour illustrer les réponses aux questions ci-dessus.

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour,
    Ecrire "Oui" ou "à voir" dans la colonne B de la feuille (Processus) copier la ligne dans la feuille Actions à mener
    essayez avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then
    If UCase(Target.Value) = "OUI" Or Target.Value = "à voir" Then
    Range("A" & Target.Row).Resize(1, 2).Copy
    ActiveSheet.Paste Destination:=Worksheets("Actions à mener").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
    Application.CutCopyMode = False
    End If
    End If
    End Sub
    Fichiers attachés Fichiers attachés

  4. #4
    Nouveau candidat au Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Par défaut Menhir
    Tout d'abord, merci pour vos réponses!

    Menhir, effectivement je souhaiterais que les valeurs se copient immédiatement, dès la saisie de "Oui" ou "À voir" (sachant que je vais surement essayer de trouver une formule pour que ces valeurs apparaissent seules). Il faudrait copier uniquement les lignes qui n'ont pas encore été copiées.
    J'ai mis une ébauche de tableau en copie (sachant que le vrai tableau est sur Google).

    Par exemple, si l'on prend le premier contrat du tableau, j'aimerais que :
    - A3 de "Processus" soit copiée dans A3 de "Actions"
    - B3 de "Processus" soit copiée dans B3 de "Actions"
    - C3 de "Processus" soit copiée dans D3 de "Actions"
    - E3 de "Processus" soit copiée dans E3 de "Actions"
    - F3 de "Processus" soit copiée dans F3 de "Actions"

    Je suis consciente que mon tableau est (très) mal fait pour intégrer des macros, je ne sais pas si je demande l'impossible ou non... Sinon j'essaierai de faire un tableau plus simple...
    Fichiers attachés Fichiers attachés

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Redphoeniiix Voir le message
    Menhir, effectivement je souhaiterais que les valeurs se copient immédiatement, dès la saisie de "Oui" ou "À voir" (sachant que je vais surement essayer de trouver une formule pour que ces valeurs apparaissent seules).
    Attention, ce n'est pas du tout la même chose.
    Une saisie dans une cellule peut être repérée par une macro évènementielle Worksheet_Change.
    Mais ce sera totalement sans effet si la valeur est modifiée par une formule, une copie ou... autre (puisque tu ne précises pas ce qui va faire cette modification à l'avenir).

    Il faudrait copier uniquement les lignes qui n'ont pas encore été copiées.
    Comment peut-on savoir qu'une ligne a déjà été copiée ?
    Est-ce qu'il y a un éléments de la ligne qui est modifié lors de la copie ?
    Est-il possible de repérer dans la destination (et par quels éléments) les lignes qui ont déjà été copiées ?

    J'ai mis une ébauche de tableau en copie (sachant que le vrai tableau est sur Google).
    Pour info, plusieurs participants à ce forum (moi compris) n'ouvrent pas les fichiers joints, entre autre pour les raisons exposées ici :
    https://www.developpez.net/forums/d8...s-discussions/

    Par exemple,
    On ne peut pas construire un code sur un exemple.
    Il faut des règles qui couvrent l'ensemble des cas possibles.

    - A3 de "Processus" soit copiée dans A3 de "Actions"
    - B3 de "Processus" soit copiée dans B3 de "Actions"
    - C3 de "Processus" soit copiée dans D3 de "Actions"
    - E3 de "Processus" soit copiée dans E3 de "Actions"
    - F3 de "Processus" soit copiée dans F3 de "Actions"
    Tu peux faire ce transfert soit par copie avec la propriété Copy affectée au Range désignant tes données sources.
    https://msdn.microsoft.com/fr-fr/lib...0(v=office.15)

    Soit le transférer directement par valeur.
    Par exemple pour le A3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Actions").Range("A3") = Worksheets("Processus").Range("A3")

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/10/2017, 11h47
  2. [XL-2007] Déplacer des lignes dans un autre onglet selon valeur d'une cellule
    Par Accessifiante dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 06/05/2014, 16h45
  3. [XL-2007] Copier les données d'une cellule dans une Application non Office en VBA
    Par EmmanuelleC dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 11/05/2010, 14h27
  4. [XL-2000] copier une ligne dans un autre onglet
    Par chouki60 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/10/2009, 13h10
  5. rechercher une date et copier la ligne dans un autre onglet
    Par ptitloup57 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/02/2009, 13h34

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