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 :

VBA Problème de reconnaissance ce variable à l'aide d'une boucle XL-2010


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Par défaut VBA Problème de reconnaissance ce variable à l'aide d'une boucle XL-2010
    Bonjour,


    Je n'arrive pas à écrire la dernière ligne de mon code.

    Mon code teste que le tableau contient bien les noms d'entêtes de la variable Test_Entete à l'aide de la fonction find sur la première ligne.
    Une fois mon entête trouvée je voudrais appeler la valeur de ma deuxième variable NomColVariable soit NumColVarToto1 pour qu'elle devienne une troisème variable dans ma macro.
    Avec l'aide du bon code que la valeur NumColVarToto1soit égal à activecell.column ou se trouve le titre de mon en-tête de colonne

    Mais malheureusement je cale sur la syntaxe ou la façon de faire.

    Merci de votre aide

    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
    Test_Entete = Array("toto1", "toto2", "toto3")
    NomColVariable = Array("NumColVarToto1", "NumColVarToto2", "NumColVarToto3")
    'Boucle en sélectionnant la 1ère ligne on recch si les cel contiennent DATE, FOURNISSEUR et SOLDE
    For a = 0 To UBound(Test_Entete)
     
    'Permet de vérifier que le find fctionne
    Set Resultat = Range(Cells(1, 1), Cells(1, ylastcolumn)).Find(What:="*" & Test_Entete(a) & "*", LookIn:=xlValues, LookAt:=xlWhole)
     
    If Resultat Is Nothing Then
            MsgBox ("Il n'y a pas sur la 1ere ligne une en-tete de colonne contenant le mot " & Test_Entete(a) & vbCrLf & _
                    "Merci de le rajouter dans la feuille de départ et de relancer la macro")
                 End
     
                    Else:
     
            Resultat.Activate
     
     
    Je cale ici----> 'valeur NomColVariable(a) = ActiveCell.Column
     
    End If
     
    Next a

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    j'ai pas tout compris je pense, puisque ce que tu n'arrives pas à faire correspond pourtant à la dernière ligne que tu as mis en commentaire

    tu veux par exemple remplacer "NumColVarToto1" qui est dans le tableau "NomColVariable", par le numéro de colonne de l'en-tête "toto1" s'il existe ?

    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
    Test_Entete = Array("toto1", "toto2", "toto3")
    NomColVariable = Array("NumColVarToto1", "NumColVarToto2", "NumColVarToto3")
     
    'Boucle en sélectionnant la 1ère ligne on recch si les cel contiennent DATE, FOURNISSEUR et SOLDE
    For a = 0 To UBound(Test_Entete)
     
        'Permet de vérifier que le find fctionne
        Set resultat = Range(Cells(1, 1), Cells(1, ylastcolumn)).Find(What:="*" & Test_Entete(a) & "*", LookIn:=xlValues, LookAt:=xlWhole)
        If resultat Is Nothing Then
            MsgBox ("Il n'y a pas sur la 1ere ligne une en-tete de colonne contenant le mot " & Test_Entete(a) & vbCrLf & _
            "Merci de le rajouter dans la feuille de départ et de relancer la macro")
            Exit Sub
        End If
     
        NomColVariable(a) = resultat.Column
     
    Next a
     
    End Sub

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Par défaut
    Ma boucle trouve la colonne toto1 dans mon tableau avec la variable Test_Entete. Le curseur se place dessus.

    La boucle à la valeur 0 , dans le même temps j'active ma deuxième variable NomColVariable.

    Je voudrais que la valeur 0 de NomColVariable soit NumColVarToto1 qui est disponible dans la fenêtre variables locales quand je fais NomColVariable (a).

    Ensuite je cherche à coder pour qu'elle devienne une troisième variable indépendante pour faire une ligne de code NumColVarToto1 = activecell.column.

    Mais je n'ai pas trouvé le moyen de déclarer la valeur NomColVariable (0) en vba pour quelle devienne ma 3ème variable

    En espérant avoir été plus clair.

    Merci de votre aide

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/02/2014, 15h54
  2. Changer le nom de variables à l'aide d'une macro
    Par cocoty dans le forum Macro
    Réponses: 4
    Dernier message: 03/07/2008, 09h12
  3. [VBA-E] Ouvrir une série de fichiers à l'aide d'une boucle
    Par Tiki40 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/12/2006, 14h34
  4. [RegEx] problème variable au sein d'une boucle for
    Par mussara dans le forum Langage
    Réponses: 4
    Dernier message: 22/06/2006, 14h26
  5. VBA Excel : Appel d'un userform à l'aide d'une variable
    Par pierrot657 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/06/2005, 23h08

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