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 :

Variable de colonne lue avec VLookUP (pour croisement de fichiers) [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2015
    Messages : 14
    Par défaut Variable de colonne lue avec VLookUP (pour croisement de fichiers)
    Bonjour !

    Je viens vous demander votre aide pour un problème que je n'arrive pas à résoudre.
    Voici actuellement mon code qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .Range(lettre & "2:" & lettre & LastRowEB).Formula = _
    "=VLOOKUP(A2,Tempo!$A$1:$B$" & LastRowRef - 1 & ",2,0)"
    Autrement dit j'applique la formule par exemple de B2 à B10 depuis une feuille qui s'appelle Tempo.

    Cependant, lorsque j'essaye de remplacer "A2" par une variable, je n'obtiens plus de valeurs mais j'ai le droit à des "#NOM?".
    Je n'ai donc pas d'erreur, mais pas de résultat non plus.

    J'ai essayé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim test_1
        test_1 = Range("A2").Value
        MsgBox test_1
     
        .Range(lettre & "2:" & lettre & LastRowEB).Formula = _
    "=VLOOKUP(test_1,Tempo!$A$1:$B$" & LastRowRef - 1 & ",2,0)"
    Et ça ne marche pas..Pourtant test_1 est bien égale à "1" comme mon premier identifiant commun.

    De même si j'essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim test_1
        test_1 = "A2"
        MsgBox test_1
    test_1 est bien égale à "A2" mais aucun résultat dans le VLookUP...

    J'ai l'impression qu'il s'agit d'un problème de format de données ou que sais-je mais je n'arrive pas à résoudre ce souci.

    Je vous remercie d'avance de votre aide !

    Nicolas

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour, bonjour !

    Ne pas confondre texte et variable !

    Mauvais code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Demo0()
        T$ = "A2"
        MsgBox "Valeur de T : T"
    End Sub
    Tout ce qui est encadré par des guillemets est du texte et non pas une variable …


    Bon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Demo1()
        T$ = "A2"
        MsgBox "Valeur de T : " & T
    End Sub
    _____________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    _____________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu te prend la tête pour rien!

    tu écris ta formule en A2;

    tu vas dans Excel, tu te place en A2, tu vas dans vb raccourci clavier [Alt] + [F11], tu ouvre la fenêtre d’exécution raccourci [ctrl] + [g],
    tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ?ActiveCell.Formular1c1
    et tu appuis sur la touche [Entre]
    tu copy la formule exemple si elle contient des " tu les double ""; et en suite dans VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("a1:a120").formular1c1="=R[-2]C+R[-1]C"
    là tu colle toute tes formule en une seule passe!

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2015
    Messages : 14
    Par défaut
    Je me suis peut être mal exprimé...

    A la place de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .Range(lettre & "2:" & lettre & LastRowEB).Formula = _
    "=VLOOKUP(A2,Tempo!$A$1:$B$" & LastRowRef - 1 & ",2,0)"
    Je souhaiterais avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .Range(lettre & "2:" & lettre & LastRowEB).Formula = _
    "=VLOOKUP(test_1,Tempo!$A$1:$B$" & LastRowRef - 1 & ",2,0)"
    Où test_1 serait égal à "ID & 2" (où ID=A et on fait la concaténation avec 2).

    Pourquoi quelque chose d'aussi complexe pour rien ? Parce que je ne peux pas figer "A2" dans la formule car le but est que la valeur "ID" change grâce à un calcul prévu auparavant.
    En fait ma variable ID va parcourir le tableau pour récupérer la lettre de la colonne où se situe l'ID. Ensuite on concatène avec le 2, càd là où commencent mes valeurs.

    Je n'applique pas la formule en A2, j'applique la formule en lettre & "2:" & lettre & LastRowEB

    Merci tout de même, si vous savez comment résoudre ce souci je vous en serai très reconnaissant !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =VLOOKUP(test_1,Tempo!A1:B" & LastRowRef - 1 & ",2,0)"
    on est bien d'accord tu tes très bien exprimé et ma réponse reste la même!

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2015
    Messages : 14
    Par défaut
    Bon finalement on a pu m'apporter de l'aide directement ! Désolé du dérangement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim test_1 As Variant
        test_1 = ID_EB & "2"
        MsgBox test_1
     
        .Range(lettre & "2:" & lettre & LastRowEB).Formula = _
    "=VLOOKUP(" & test_1 & ",Tempo!$A$1:$B$" & LastRowRef - 1 & ",2,0)"
    Mon code interprétait le nom de la variable et non son contenu...

    Bref, souci résolu, merci quand même !!

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

Discussions similaires

  1. [Qt WebKit] Requête Ajax avec JQuery pour charger un fichier XML
    Par Maxbester dans le forum Moteurs Web
    Réponses: 0
    Dernier message: 17/12/2012, 14h42
  2. [Débutant] Boucle avec fopen pour ouvrir plusieurs fichiers
    Par black cat747 dans le forum MATLAB
    Réponses: 7
    Dernier message: 08/12/2010, 16h55
  3. Réponses: 0
    Dernier message: 06/02/2010, 20h30
  4. Polling avec OpenReadAsync pour lire un fichier XML
    Par GLoeKS dans le forum Silverlight
    Réponses: 9
    Dernier message: 23/04/2008, 14h32

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