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 :

Import Données Classeur Excel Fermé (ou ouvert) vers une TextBox


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 19
    Points : 4
    Points
    4
    Par défaut Import Données Classeur Excel Fermé (ou ouvert) vers une TextBox
    Bonjour à tous,
    Je travail à la simplification d'un document Word via des Userforms.
    J'utilise également un fichier Excel source : "Liste Adresse Client" ; qui est fermé. La 1ere colonne est "code"; la 2ème est "nom"; la 3ème est "adresse"; la 4ème est "code postal" et la 5ème est "ville".

    Je bloque sur un code
    Dans un UserForm, j'ai deux textbox (1 & 2) et deux Commandbutton ( "rechercher" & "publier" )

    Je souhaite :
    Ecrire manuellement un code client dans la textbox1 (Exemple : 4903)

    Cliquer sur Commandbutton "rechercher" entraîne la recherche de ce code (4903) dans la première colonne du fichier Excel "Liste Adresse Client" puis publie dans la textbox2 les informations (nom, adresse, code postal et ville) contenues dans la ligne correspondante.

    Ces informations doivent être disposées en 3 lignes dans la textbox2 :
    1ère ligne de la textbox2 : "nom"
    2èmeligne de la textbox2 : "adresse"
    3ème ligne de la textbox2 : "code postal" + "ville"


    Le Commandbutton "Publier" me servira à publier (ou non) le texte de la textbox2 dans un cadre de texte de mon fichier word. (Mais pour ce code, aucun souci)

    D'avance merci à tous pour vos aides, contributions et suggestions

  2. #2
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,
    Où exactement repose ton problème? Peux-tu nous dire ce que tu as déjà fait? As-tu un message d'erreur? Si oui, lequel et où?
    Pour écrire et lire dans des classeurs fermés : consulte le tuto associé.
    Pour chercher des données dans une feuille Excel : interesse-toi à la fonction Application.Vlookup qui se comporte comme RECHERCHEV dans Excel.

    PS : petit conseil : tu poses une question sur VBA dans le forum Excel, il y a un forum entièrement dédié au VBA La prochaine fois écris dans le bon forum, tu auras plus de succes

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Bonjour Riaolle

    Merci pour ta réponse
    J'ai vu le Tuto mentionné. Comme je suis débutant, je n'arrive pas à structurer mon code ni à comprendre toute les commandes du tuto afin d'adapter celui-ci à mon objectif, je tatonne depuis une demi journée sans succès et du coup j'ai tout viré...

    Ce que je recherche ici dans l'idéal serait que quelqu'un de plus expérimenté me fasse une trame de ce que je cherche à coder (avec explication, histoire que je revienne pas demander pour la même chose). Cela serai un gain de temps très précieux pour moi.

    Dsl pour le forum pas forcement le mieux adapté, je prend bonne note

  4. #4
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Si tu regardes dans le tutos, tu trouves un code expliquant comment lire dans un classeur fermé au § IV-A.L'exemple est un peu plus complet, car il est complété par des operations une fois le classeur ouvert, mais si tu regardes seulement ce qui t'intéresse, ça donne :
    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
    Sub EcrireClasseurFerme()
        Dim Cn As ADODB.Connection
        Dim Fichier As String
        Dim NomFeuille As String
     
        'Définit le classeur fermé servant de base de données
        Fichier = "C:\monClasseurBase.xls"
        'Nom de la feuille dans le classeur fermé
        NomFeuille = "Feuil1"
     
        Set Cn = New ADODB.Connection
     
        '--- Connection ---
        With Cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Data Source=" & Fichier & _
                ";Extended Properties=Excel 8.0;"
            .Open
        End With
        '-----------------
     
        'JE FAIS CE QUE J'AI A FAIRE DANS LE CLASSEUR COMME SI IL ETAIT OUVERT
     
        '--- Fermeture connexion ---
        Cn.Close
        Set Cn = Nothing
     
    End Sub
    Ensuite, en ce qui concerne la recherche. Vlookup s'utilise comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Appication.VLookup(valeur à chercher, plage où chercher, 0)
    Si je comprend bien , dans ton cas la valeur à chercher sera TextBox1.Value ou TextBox2.Value
    La plage où chercher sera dans ce fameux classeur fermé.

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Ok parfait ! Merci
    au pire ca sera pas bon du premier coup mais je vais retoucher au fur et a mesure.

    je tiens au courant

    Par contre, je ne sais pas comment coder :
    mettre les données de la ligne "X" colonne "Y" du fichier excel dans la première ligne de textbox2
    mettre les données de la ligne "X" colonne "W" du fichier excel dans la deuxième ligne de textbox2
    mettre les données de la ligne "X" colonne "z" du fichier excel dans la troisième ligne de textbox2

    (c'est la notion attribuer à une ligne, ou aller à la ligne que je connais pas! mais je vais chercher encore)

  6. #6
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    1. Pour dire que tu veux faire référence à la cellule B1, tu as 2 possibilités:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      Range("B1")
      Cells(1, 2)
      Avec Range, tu dois écrire le nom de la cellule, ici B1. Si ton numero de ligne est une variable, tu peux écrire Range("B" & i). Tu peux même le faire avec la colonne : Range(col & "1"), mais il faut que la variable col soit de type String (texte).
      Avec Cells, tu donnes le numéro de ligne et le numéro de colonne (B = n° 2)
    2. Pour faire plusieurs lignes dans une textbox, tu utilises la fonction Chr(10) qui veut dire "revenir à la ligne":
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      TextBox1.Value = "ma première ligne"
      TextBox1.Value = TextBox1.Value & Chr(10) & "ma deuxième ligne"


    D'après ce que tu me dis dans ton message, mis bout à bout, cela donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim x As Long
        Dim w As Long
        Dim y As Long
        Dim z As Long
     
        Textbox1.Value = Cells(x, w).Value & Chr(10) & Cells(x, y) & Chr(10) & Cells(x, z)

  7. #7
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    bon alors
    j'ai tenté, mais il ne se passe RIEN ! même pas un message d'erreur...


    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 EcrireClasseurFerme()
        Dim Cn As ADODB.Connection
        Dim Fichier As String
        Dim NomFeuille As String
     
        'Définit le classeur fermé servant de base de données
        Fichier = "C:\Documents and Settings\thibaut\Bureau\Arnaud\CONTRAT AUTO\Adresse Clients Excel Pour Contrat Auto.xlsx"
        'Nom de la feuille dans le classeur fermé
        NomFeuille = "Feuil1"
     
        Set Cn = New ADODB.Connection
     
        '--- Connection ---
        With Cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Data Source=" & Fichier & _
                ";Extended Properties=Excel 8.0;"
            .Open
        End With
        '-----------------
     
        'JE FAIS CE QUE J'AI A FAIRE DANS LE CLASSEUR COMME SI IL ETAIT OUVERT
     
    With CommandButton1_Click()
     
    Application.VLookup(TextBox2.Value, ("A2:A2558"), 2, 0) = TextBox3.Value
     
    End With
     
        '--- Fermeture connexion ---
        Cn.Close
        Set Cn = Nothing
     
    End Sub

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Les classeurs fermés, c'est rarement le top.

    Si ta source est organisée en données, tu aurais intérêt à utiliser MSQuery pour récupérer les données du classeur fermé. Ensuite, tu aliments le listbox avec les valeurs récupérées.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Nom : capture ecran userform.jpg
Affichages : 1381
Taille : 64,3 Ko

    voila une capture d'écran du UserForm en question, pour bien comprendre (j'ai mis les noms en texte, pour faire le lien avec mon "code")

  10. #10
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Après mure réflexion et plein de lecture sur le site

    Je pense que la remarque "bosser avec un fichier fermé c'est pas top" est judicieuse.

    J'ai compris que le problème peut etre contourné en ouvrant le fichier, sans l'afficher.

    Comment puis-je refaire tout mon code en partant de cette nouvelle idée?

    D'avance merci

  11. #11
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Bon, j'ai un peu avancé...

    j'arrive à ouvrir mon excel (en visible ou en caché , visible = true/false; peut importe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
     
       Dim xlApp As Object
        Dim wbk As Object
        Set Activdoc = ActiveDocument
        Set xlApp = CreateObject("excel.application")
        Set wbk = xlApp.Workbooks.Open("C:\Users\Toshiba\Desktop\Adresse Clients Excel Pour Contrat Auto.xlsx") ' Définit le fichier EXCEL à ouvrir
        xlApp.Visible = True
        wbk.Sheets("Feuil1").Activate
     
     
    End Sub
    Maintenant il me reste la partie "recherche la cellule dans la colonne A" (du doc excel) dont la ".value" = à "TextBox1.Value" (du userform du doc word); puis donne moi le résultat de la colonne B de cette même ligne.

    Je sais qu'en excel c'est une rechercheV, et VBA VLookup; mais ma librairie ne connais pas Vlookup (excel et word 2007 sur mes PC)

    Je progresse doucement, votre aide m'aidera a finir en beauté

    Merci à tous
    et ca je

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Importe tes données puis travaille avec les données importées. Ce sera beaucoup plus simple. Là, tu te compliques inutilement la vie. Un principe en programmation : ne pas réinventer la roue sauf pour qu'elle tourne mieux, ce qui n'est pas le cas ici.

    Pour importer, vba ou msquery.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #13
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With CommandButton1_Click()
    Application.VLookup(TextBox2.Value, ("A2:A2558"), 2, 0) = TextBox3.Value
    End With
    Je suis pas bien sûre de ce que tu veux faire ici ...

    CommandButton1_Click est une méthode liée à un bouton. Quand tu créés la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub CommandButton1_Click()
        '...
    End Sub
    Tu créés qqc qui indique ce qu'il se passe lorsqu'on clique sur le bouton --> tuto userform

    Le bloc With sert à simplifier une écriture à partir d'objets. Par exemple, tu veux travailler longtmeps sur une même feuille qui n'est pas ta feuille active, tu peux écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Sheets("maFeuil")
        .Range("A1").Value = "toto"
        .Range("A2").Value = "titi"
        .Range("A3").Value = "tutu"
        'etc ....
    End With
    Ca t'évite d'écrire 3 x Sheets("maFeuil").

    Si j'ai bien compris : tu veux qu'en cliquant sur le bouton, le code aille chercher des infos dans un autre fichier. Je pense que la meilleure façon de procéder est d'ouvrir le fichier au moment où tu initialises le Userform, puis de le fermer au moment où tu fermes le UserForm. Ensuite tu mets tes fonctions de recherche dans le Sub CommandButton1_Click

    Autre commentaire par rapport à ton code, tu écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.VLookup(TextBox2.Value, ("A2:A2558"), 2, 0) = TextBox3.Value
    Comme je te l'ai expliqué plus haut, la syntaxe pour une plage de données est sous la forme :
    C'est un petit oublie dans ta formule
    Il vaudrait mieux que tu précises dans quelle feuille il faut chercher, surtout si tu as plusieurs classeurs ouverts. Quand tu écris seulement Range("A1:A2"), Excel va chercher dans la feuille active et ici, je ne suis pas sûre que la feuille active soit celle où il faut chercher. Il faudrait écrire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("nom du fichier").Sheets("nom de la feuille").Range("A2:A2558")
    J'espère que tu arriveras à avancer avec ça

  14. #14
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Nom : message erreur.JPG
Affichages : 1337
Taille : 66,9 Ko

    cher tous...ca coince encore
    Visiblement Vlookup n'est pas compris
    j'ai tenté avec "Application.Worksheetfunction.VLookup(....)"
    même résultat

    y a t-il une bibliothèque que je dois cocher dans les références et/ou controles supplémentaires ?

    merci

  15. #15
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Ce n'est pas ton Vlookup qui pêche, mais wkb.
    Tu demande au vlookup de chercher dans wkb, mais tu ne dis jamais ce qu'est wkb (du moins tu ne le dis pas dans le sub en question).
    2 solutions :
    1. Soit tu déclares wkb dans le sub et tu lui attribus une valeur avec le nom du workbook correspondant
    2. Soit tu fais de wkb une variable globale qui est initialisée à l'ouverture du userform et là tu peux l'utiliser tel quel dans tous tes sub du userform (je pense que cette 2ème solution est plus adaptée)

  16. #16
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    j'ai simplifié et repris avec le précédent conseil workbook, sheet etc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton1_Click()
     
     
    TextBox3.Value = Application.WorkSheetfunction.VLookup(TextBox2.Value, Workbooks("Adresse Clients Excel Pour Contrat Auto").Sheets("Feuil1").Range("A2:A2558"), 2, 0).Value
     
    End Sub
    mais pas de résultat

  17. #17
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Que veut-dire "pas de résultat"? As-tu un message d'erreur? Ou est-ce que le code tourne mais ne renvoie rien?

  18. #18
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
     
    TextBox3.Value = Application.VLookup(TextBox2.Value, Workbooks("Adresse Client Excel Pour Contrat Auto").Sheets("Feuil1").Range("A2:A2558"), 2, 0).Value
     
    End Sub
    l'erreur : Nom : erreur.JPG
Affichages : 1299
Taille : 64,7 Ko

  19. #19
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Peux-tu essayer en faisant la chose suivante :
    1. Dans userform_intialize, tu enlèves Dim wbk As Object
    2. Tout en haut de ton code, avant le tout premier sub, tu écris : 3. Tu changes ton code de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox3.Value = Application.VLookup(TextBox2.Value, wbk.Sheets("Feuil1").Range("A2:A2558"), 2, 0).Value

  20. #20
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Application.WorksheetFunction.VLookup
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Importer des données de 250 feuilles vers une seule
    Par Bryan78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/04/2008, 16h18
  2. Copier des données de classeurs Excel fermés vers un classeur ouvert
    Par gwen-al dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 11/03/2008, 17h00
  3. Réponses: 8
    Dernier message: 12/10/2007, 12h54
  4. Réponses: 15
    Dernier message: 21/11/2006, 10h13
  5. Réponses: 1
    Dernier message: 07/08/2006, 21h14

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