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 coller valeur sur deux feuille avec conditions [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Points : 25
    Points
    25
    Par défaut Copier coller valeur sur deux feuille avec conditions
    Bonjour,

    j'aimerais avoir votre aide s'il vous plait.


    j'ai actuellement une première feuille "recherche", ainsi qu'une seconde "Wythrin"

    J'aimerais que la cellule C14 de la feuille "Recherche" soit copier sur la feuille "Wythrin" en A1 uniquement si dans la plage de A1 à A1000 elle n'est pas déjà présente et Si A1 est non vide copier sur A2.


    J'espère que quelqu'un va pouvoir m'aider.

    Bonne journée a tous. et merci encore.

  2. #2
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Comme ça va plus vite de l'écrire que de l'expliquer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Ch As Range
    Set Ch = Worksheets("Wythrin").Range("A1:A1000").Find(Worksheets("Recherche").Range("C14").Value)
    If Ch Is Nothing Then Worksheets("Recherche").Range("C14").Copy Worksheets("Wythrin").Range("A1").End(xlDown).Offset(1, 0)
    C'est du code tapé à l'arrache directement sur le forum et non testé. Tu auras donc peut-être un peu de débugage à faire.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Je te remercie beaucoup d'avoir pris le temps de me répondre. Je suis extrêmement novice dans le VBA.

    Ton code fonctionne sans : .End(xlDown).Offset(1, 0)

    Avec il me met une erreur.

    Si C14 est une formule on peux également lui dire de prendre que la valeur finale ?

  4. #4
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par SirFurtif Voir le message
    Ton code fonctionne sans : .End(xlDown).Offset(1, 0)
    Si tu enlèves ça, ça copiera systématiquement en A1 sans passer à la cellule suivante.

    Avec il me met une erreur.
    C'est sans doute dû au fait que la colonne A1 est vide.
    VBA ne peut pas trouver la dernière cellule occupée de la colonne s'il n'y en a pas.
    Cette erreur disparaitra quand il y aura quelque chose en A1:A2.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Voici mon tableau en image ->

    Nom : Recherche.png
Affichages : 147
Taille : 47,9 KoNom : Wythrin.png
Affichages : 143
Taille : 8,8 Ko


    La case A1 à bien une information, mais sans succès.

    Si C14 est une formule on peux également lui dire de prendre que la valeur finale ?

    Désolé, je suis vraiment novice sur cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Wythrin()
    Dim Ch As Range
    Set Ch = Worksheets("Wythrin").Range("A1:A1000").Find(Worksheets("Recherche").Range("C14").Value)
    If Ch Is Nothing Then Worksheets("Recherche").Value("C14").Value.Copy Worksheets("Wythrin").Range("A2").End(xlDown).Offset(1, 0)
    End Sub

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Ah j'ai compris il faut une valeur en A1 et A2 pour que cela fonctionne MERCI BEAUCOUP

    Derniere question : Si C14 est une formule on peux également lui dire de prendre que la valeur finale ?

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Pour le moment je me suis débrouillé avec un copie Valeur d'une cellule puis utiliser ton code sur la cellule copier.

    En tout cas merci beaucoup de ton aide.

  8. #8
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par SirFurtif Voir le message
    Derniere question
    Il est peu probable que ce soit la dernière.

    Si C14 est une formule on peux également lui dire de prendre que la valeur finale ?
    Il faut décomposer l'instruction de copie en deux lignes.
    Une première ligne avec un Copy sans argument appliqué au Range source.
    Une seconde ligne avec un PasteSpecial(xlValues) appliqué à la destination.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Merci, j'ai pas d'autre question juste un problème

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Identification()
    Dim Ch As Range
    Set Ch = Worksheets("Wythrin").Range("A1:A1000").Find(Worksheets("Recherche").Range("C32").Value)
    If Ch Is Nothing Then Worksheets("Recherche").Range("C32").Copy
    If Ch Is Nothing Then Worksheets("Wythrin").Range("A6").PasteSpecial (xlValues)
    Cela fonctionne mais ne saute pas de ligne comme à l'initiale et si je rajoute -> .End(xlDown).Offset(1, 0)

    J'ai erreur de compilation: Erreur de syntaxe

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Comme cela, j'y arrive.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Identification()
    Dim R As Worksheet 'déclare la variable R (onglet Recherche)
    Dim W As Worksheet 'déclare la variable W (onglet Wythrin)
    Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
     
    Set Ch = Worksheets("Wythrin").Range("A1:A1000").Find(Worksheets("Recherche").Range("C14").Value)
    Set R = Sheets("Recherche") 'définit l'onglet R
    Set W = Sheets("Wythrin") 'définit l'onglet W
    Set DEST = W.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
    If Ch Is Nothing Then R.Range("C14").Copy
    If Ch Is Nothing Then DEST.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True
    End Sub

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

Discussions similaires

  1. [XL-2007] Copier lignes de deux feuilles avec condition sur une feuille recap
    Par MAISON29600 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/10/2017, 18h51
  2. [XL-2013] couper coller des lignes sur deux feuilles avec conditions
    Par sixfreed76 dans le forum Excel
    Réponses: 6
    Dernier message: 25/01/2016, 15h15
  3. [XL-2002] Recherche d'une valeur sur plusieurs feuilles avec conditions
    Par Rat-Thon dans le forum Excel
    Réponses: 4
    Dernier message: 06/12/2013, 13h26
  4. transfert lignes,colonnes sur deux feuille avec condition
    Par explosion dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 10/06/2010, 15h42
  5. [XL-2007] Copier coller une ligne excel sur autre feuille avec conditions
    Par amstelveen dans le forum Excel
    Réponses: 5
    Dernier message: 11/05/2009, 19h54

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