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 :

Si une cellule est égale à une autre alors copier cellule vers une autre


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Si une cellule est égale à une autre alors copier cellule vers une autre
    Bonjour,

    J'ai deux feuilles excel (Feuil1 et Feuil2)
    Dans ma feuil1 j'ai un listing de numéros qui ne se suivent pas forcément (colonne B, partant de B5 ) et des commentaires correspondant à chaque numéro (colonne C, partant de C5)
    J'ai crée une macro qui après renseignement du formulaire, rempli des valeurs numériques dans les cellule B17 à B28 de ma feuil2
    J'aimerais s'il est possible que lorsque qu'un des numéro de ma feuil2 correspond à un numéro de la liste de ma Feuil1 le commentaire qui lui est propre soit copier/coller dans la cellule C17 à C28 correspondant de la Feuil2.
    J'ai pas mal cherché et fait quelques essais avec la fonction FIND mais je ne m'y connais pas assez et je n'obtiens rien de concluant.

    Pourriez-vous m'aider ?

    Merci d'avance,
    Morgan

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Morgan, bonjour le forum,

    Essaie comme ça :

    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
    19
    20
    Sub Macro1()
    Dim O1 As Worksheet 'déclare la variable O1 (onglet Feuil1)
    Dim O2 As Worksheet 'déclare la variable O2 (onglet Feuil2)
    Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
    Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
    Dim I1 As Integer 'déclare la variable I1 (Incrément Feuil1)
    Dim I2 As Byte 'déclare la variable I2 (Incrément Feuil2)
     
    Set O1 = Worksheets("Feuil1") 'défint l'onglet O1
    Set O2 = Worksheets("Feuil2") 'défint l'onglet O2
    DL = O1.Cells(Application.Rows.Count, "B").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne B de l'onglet o1
    TV = O1.Range("B5:C" & DL) 'définit le tableau des valeurs TV
    For I2 = 17 To 28 'boucle 1 : sur les cellules de B17 à B28 de la colonne B de l'ongelt O2
        For I1 = 1 To UBound(TV, 1) 'boucle 2 : sur toutes les données de la première colonne du tableau des valeurs TV
            'si la donnée ligne I1, colonne 1 de TV est égale à la cellule ligne I2 colonne B de l'onglet O2
            'la cellule ligne I2 colonne C de l'onglet O2 prend la valeur de la donnée ligne I1 colonne 2 de TV: sort de la boucle 2
            If TV(I1, 1) = O2.Cells(I2, "B") Then O2.Cells(I2, "C").Value = TV(I1, 2): Exit For
        Next I1 'prochaine ligne de la boucle 2
    Next I2 'prochaine cellule de la boucle 1
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Tu n'as pas besoin de macro pour cela, il suffit que tu places la formule suivante en C17 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(RECHERCHEV($B17;Feuil1!$B$5:$C$18;2;FAUX);"")
    puis recopie jusqu'en C28.

    Cordialement.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci à tous les deux pour vos réponses aussi rapides.
    Je vois l'idée de la macro et je la garde de côté pour d'autres projets mais je vais opter pour la formule je n'y avais pas pensé et ça sera aussi simple

    Merci encore.
    Morgan

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/04/2019, 15h02
  2. Réponses: 14
    Dernier message: 09/05/2018, 13h39
  3. Réponses: 1
    Dernier message: 17/03/2016, 19h44
  4. [XL-2010] Compter une valeur si la cellule voisine est égale à une autre valeur
    Par Aero31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/11/2015, 11h27
  5. Réponses: 4
    Dernier message: 31/07/2014, 16h56

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