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 :

recherche valeur et copie dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2020
    Messages : 5
    Points : 4
    Points
    4
    Par défaut recherche valeur et copie dynamique
    Bonjour,
    Je débute en VBA car je souhaite réaliser une macro que je pense assez basique et qui est:
    recherche de trois variables (X,Y,Z) de type string. dans une feuille(baseData) j'aimeraire faire la cherche succesive de X ,Y Z dans la plage dun colone (G6:G1000000).

    si X,Y,Z existe dans cette plage alors copie X,Y,Z dans la feuille(facture) dans les cellules B3:B5.

    sinon si c'est Y,Z alors copier Y,Z dans B3:B4
    sinon si c'est X,Z alors copier X,Z dans B3:B4

    Vous sauriez un peu me guider vers le code à taper ?*
    Merci beaucoup !

  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 Nialarix, bonjour le forum,

    Il doit y avoir plus simple mais je n'ai pas mieux :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Sub Macro1()
    Dim BD As Worksheet 'déclare la variable BD (onglet baseData)
    Dim F As Worksheet 'déclare la variable F (onglet Facture)
    Dim X As String 'déclare la variable X
    Dim Y As String 'déclare la variable Y
    Dim Z As String 'déclare la variable Z
    Dim R1 As Range 'déclare la variable R1 (Recherche 1)
    Dim R2 As Range 'déclare la variable R2 (Recherche 1)
    Dim R3 As Range 'déclare la variable R3 (Recherche 1)
     
    Set BD = Worksheets("baseData") 'définit l'onglet BD
    Set F = Worksheets("Facture") 'définit l'onglet F
    X = "dsfdsf" 'définit la variable X (à adapter à ton cas)
    Y = "dsfds" 'définit la variable Y (à adapter à ton cas)
    Z = "ertert" 'définit la variable Z (à adapter à ton cas)
    Set R1 = BD.Range("G6:G1000000").Find(X, , xlValues, xlWhole) 'définit la recherche R1 (recherche la valeur exacte de X dans plage G6:G1000000)
    Set R2 = BD.Range("G6:G1000000").Find(Y, , xlValues, xlWhole) 'définit la recherche R2 (recherche la valeur exacte de Y dans plage G6:G1000000)
    Set R3 = BD.Range("G6:G1000000").Find(Z, , xlValues, xlWhole) 'définit la recherche R3 (recherche la valeur exacte de Z dans plage G6:G1000000)
    If Not R1 Is Nothing And Not R2 Is Nothing And Not R3 Is Nothing Then 'condition : si au moins une occurrence est trouvée pour chaque recherche
        F.Range("B3").Value = R1.Value 'B3 de l'onglet facture récupère la valeur de la première occurrence trouvée de X
        F.Range("B4").Value = R2.Value 'B4 de l'onglet facture récupère la valeur de la première occurrence trouvée de Y
        F.Range("B5").Value = R3.Value 'B5 de l'onglet facture récupère la valeur de la première occurrence trouvée de Z
        Exit Sub 'sort de la procédure
    End If 'fin de la condition
    If R1 Is Nothing And Not R2 Is Nothing And Not R3 Is Nothing Then 'condition : si au moins une occurrence est trouvée pour les recherche R2 et R3
        F.Range("B3").Value = R2.Value 'B3 de l'onglet facture récupère la valeur de la première occurrence trouvée de Y
        F.Range("B4").Value = R3.Value 'B4 de l'onglet facture récupère la valeur de la première occurrence trouvée de Z
        Exit Sub 'sort de la procédure
    End If 'fin de la condition
    If R2 Is Nothing And Not R1 Is nothnig And Not R3 Is Nothing Then 'condition : si au moins une occurrence est trouvée pour les recherche R1 et R3
        F.Range("B3").Value = R1.Value 'B3 de l'onglet facture récupère la valeur de la première occurrence trouvée de X
        F.Range("B4").Value = R3.Value 'B4 de l'onglet facture récupère la valeur de la première occurrence trouvée de Z
    End If 'fin de la condition
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Bonjour,

    Pas besoin de VBA pour compléter tes cellules B3 à B5 de ta facture.

    En PJ un fichier exemple de la fonction NB.SI().

    Tu saisis tes valeurs recherchées dans la feuille "val_cherchee" et "facture" se met à jour en fonction de "baseData".

    PS; Dans ta demande tu veux traiter:
    - XYZ
    - YZ
    - XZ

    mais jamais tu ne tiens compte de XY.

    Normal ?
    Fichiers attachés Fichiers attachés
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2020
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour Alex020181,
    déjà je tiens à te remercier de ton aide,

    effectivement je n'ai pas dans mon énoncé je n’ai pas pris en compte la recherche de XY tu as raison.

    Évidemment que je souhaite aussi prendre en compte ce cas.

    merci !

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2020
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour Thautheme,

    je tiens à te remercie de ta précieuse aide, et ton code est effectivement ce donc j'ai besoin.

    merci

  6. #6
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Citation Envoyé par nialarix Voir le message

    je tiens à te remercie de ta précieuse aide, et ton code est effectivement ce donc j'ai besoin.
    OK donc je te laisse avec Thautheme.

    Bonne continuation.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

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

Discussions similaires

  1. Vba Recherche valeur et copie dans cellule adjacente
    Par GBRacing dans le forum Excel
    Réponses: 5
    Dernier message: 02/09/2015, 22h22
  2. [XL-2010] Vba Recherche valeur et copie dans cellule adjacente
    Par GBRacing dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/09/2015, 20h59
  3. Réponses: 1
    Dernier message: 02/09/2010, 16h05
  4. Réponses: 6
    Dernier message: 26/03/2009, 20h08
  5. Recherche valeur et copie cellule
    Par stephblit dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2008, 20h43

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