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 :

RECHERCHEV VBA Macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut RECHERCHEV VBA Macro
    Bonjour,je suis debutante en vba/excel c'est pour cela que je m'aidiez
    j'ai deux classeurs excel le premier "information.xls "et il contient dans la colonne A la liste des references des produits, la colonne B contient le nom du produit correspondant a chaque reference et le dernier C contient le prix de chaque produit alors que le deuxieme classeur "devis.xls" est vide. Mon probleme et que je veux creer un macro qui lit de la valeur reference que je tape par exemple dans la colonne A (cellule a1 ) du second classeur "devis.xls" puis recherche cette valeur dans le premier fichier s'il la trouve il copie le nom et le prix unitaire correspond du produit dans le deuxieme classeur "devis.xls ". J'ai pensé à utiliser la Fonction RECHERCHEV dans un macro VBA mais le probleme et que je suis novice et j'ai pas reussi à develloper ce code en tous cas voiçi mes fichiers presentes sur ce lien http://cjoint.com/?bFmkBR8oTm. N'hesitez pas à m'aider
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    pourquoi tu veux utiliser une macro ? pourquoi tu fais as une rechercheV directe dans ton fichier ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut
    je veux pas utiliser REHERCHEV car le fichier information n'est pas dans un ordre croissant et je veux le trier car il est utilisé par des autres employés et j'ai pas le droit de le modifier. donc j'ai besoin d'un macro

  4. #4
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous
    Bonjour neila7, illight

    Essaie ce code, mais il est à adapter

    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
    Sub recherche_01()
    Dim c
    Dim ligne As Integer
    mavar = 253        ' tu récupères la valeur référence
     
    With Workbooks("Information.xls").Worksheets("Feuil1").Range("a:a")  'colonne où récupérer la valeur référence
     
        Set c = .Find(mavar, LookIn:=xlValues, Lookat:=xlWhole) '
     
                ligne = c.Row
                ActiveWorkbook.Sheets("Feuil1").Range("b2").Value = Workbooks("Information.xls").Worksheets("Feuil1").Range("H" & ligne)  'b2 est la cellule dans laquelle il faut inscrire la valeur trouvée en colonne "H"
                ActiveWorkbook.Sheets("Feuil1").Range("c2").Value = Workbooks("Information.xls").Worksheets("Feuil1").Range("I" & ligne)
     
    End With
     
    End Sub
    code à mettre dans un "module", dans "Private Sub Worksheet_SelectionChange", .... tout dépend ce que tu veux faire

    Eric

  5. #5
    Membre chevronné
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Par défaut
    Bonsoir,

    Si elle utilise une fonction, RECHERCHEV(), ou INDEX() et EQUIV(), elle va se retrouver avec une liaison externe, ce qui selon moi est à éviter comme la peste.

    Personnellement, je préfère infiniment un traitement par macro, qui va chercher l’info quand on le souhaite.

    Citation Envoyé par illight Voir le message
    pourquoi tu fais as une rechercheV directe dans ton fichier ?

  6. #6
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonsoir à tous,

    Fichiers zippés ajoutés au premier post.
    Fred

  7. #7
    Membre chevronné
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Par défaut
    Merci.

  8. #8
    Membre chevronné
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Par défaut
    Bonsoir, neila7

    Je n’arrive pas à ouvirirton fichier .rar. Peux-tu le remettre en tant que document Excel ?

    Merci.

  9. #9
    Membre chevronné
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Par défaut
    Bonsoir,

    Dans le module de la Feuill1 du classeur devis2008.xls,

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Wb As Workbook, c As Range, f As Worksheet, Ref As Range, NumLigne As Integer, Nom$, Prix As Single
        On Error Resume Next
        Set Wb = Workbooks("Informations.xls")
        If Wb Is Nothing Then Exit Sub
        On Error GoTo 0
        Set f = Wb.Sheets(1)
        Set Ref = Intersect(f.Range("B:B"), f.UsedRange)
            If Not Intersect(Target, Range("A:A")) Is Nothing Then
                    For Each c In Intersect(Target, Range("A:A"))
                        On Error Resume Next
                        NumLigne = Application.Match(c, Ref, 0)
                        On Error GoTo 0
                            If NumLigne <> 0 Then
                                Application.EnableEvents = False
                                c.Offset(0, 1) = f.Range("C" & NumLigne)
                                c.Offset(0, 2) = f.Range("I" & NumLigne)
                                Application.EnableEvents = True
                            End If
                    Next
            End If
    End Sub
    Le principe est que SI le classeur Informations.xls est ouvert, on va chercher les infos, ET SI la référence existe, on reporte le nom et le prix correspondants.

Discussions similaires

  1. [VBA]Macro Excel : les premiers pas ?
    Par epfyffer dans le forum SDK
    Réponses: 3
    Dernier message: 28/03/2007, 15h12
  2. executer une requête en VBA : macro ou pas ?
    Par Cantalou dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 26/01/2007, 14h35
  3. [VBA]Macro d'impression automatique
    Par olivier45fr dans le forum SDK
    Réponses: 5
    Dernier message: 27/11/2006, 11h04
  4. [VBA]Macros sous BO Reporter 5.1.8
    Par dieu08 dans le forum SDK
    Réponses: 10
    Dernier message: 11/10/2006, 15h46
  5. [VBA]macro Word avec données de MySQL
    Par Taz_8626 dans le forum VBA Word
    Réponses: 3
    Dernier message: 17/07/2006, 11h39

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