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 :

Probleme d'exécution de mon programme VBA sous excel [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut Probleme d'exécution de mon programme VBA sous excel
    Bonjour à tous,
    Je suis nouveau sur le forum et je me demande si une âme charitable peut m'aider à résoudre les message d'erreur à répétition que j'ai, lorsque je lance mon programme VBA. voici le code:

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim t1, t2, t3, t4, t5
    Dim TBLO(9) As String
     
    TBLO(0) = 1
    TBLO(1) = 16
    TBLO(2) = 31
    TBLO(3) = 46
    TBLO(4) = 61
    TBLO(5) = 69
    TBLO(6) = 77
    TBLO(7) = 85
    TBLO(8) = 95
    TBLO(9) = 105
    t1 = Array(Worksheets("MATRICE").Range("a2:a14"))
    t2 = Array(Worksheets("MATRICE").Range("a17:a29"))
    t3 = Array(Worksheets("MATRICE").Range("a32:a44"))
    t4 = Array(Worksheets("MATRICE").Range("a47:a59"))
    t5 = Array(Worksheets("MATRICE").Range("a62:a67"))
    t6 = Array(Worksheets("MATRICE").Range("a70:a75"))
    t7 = Array(Worksheets("MATRICE").Range("a78:a83"))
    t8 = Array(Worksheets("MATRICE").Range("a86:a93"))
    t9 = Array(Worksheets("MATRICE").Range("a96:a103"))
    t10 = Array(Worksheets("MATRICE").Range("a106:a155"))
     
    For j = 1 To 10 'TABLEAU
        For k = 1 To 5 'CELLULE
    With Worksheets("MATRICE").Range("t" & j) 'PLAGE DE RECHERCHE ADAPTATIVE
    Set a = .Find(Worksheets("F1").Cells(3, k), LookIn:=xlValues, LookAt:=xlWhole) 'CHERCHER LES DIFFERENT CRIT DANS LA FEUIL1
    End With
     
    With Worksheets("MATRICE").Range("B" & a.Row & ":" & "CB" & a.Row) 'ON CHERCHE SUR LA LIGNE CORESPONDANTE AU CRITERE CHERCHE
    Set X = .Find(1, LookIn:=xlValues, LookAt:=xlWhole) 'ON CHERCHE LA VALEUR 1 DANS LES MATRICE CORRESPONDANTE
    E = Left(X.Address(ColumnAbsolute:=False), (X.Column < 27) + 2) 'ON DETERMINE LA LETTRE DE LA COLONNE OU SE TROUVE 1
     
    For l = 0 To 9
    t = Worksheets("MATRICE").Range(E & TBLO(l)) ' DETERMINE L'INTITULE DE LA COLONNE
    If Not X Is Nothing Then
    firstAddress = X.Address
     
    For m = 0 To 4
    Worksheets("Liste").Range("A3:A80").Offset(0, m) = t 'ECRIRE L'INTITULE DANS LA FEUIL LISTE
    Do
        Set X = .FindNext(X)
        z = X.Column
        E = Left(X.Address(ColumnAbsolute:=False), (X.Column < 27) + 2)
        t = Worksheets("MATRICE").Range(E & TBLO(l))
    Loop While Not X Is Nothing And X.Address <> firstAddress
     
     
    Next m
    End If
    Next l
    End With
    Next k
    Next j
     
    End Sub
    Sachez que je n'est jamais fait de programmation et que j'ai par miracle réussis à construire ce programme grâce à ce site. Donc soyez indulgent

    En vous souhaitant une agréable journée,
    Cyril LLANTIA.







  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Premièrement, tu n'es pas dans la bonne rubrique du forum.

    Citation Envoyé par cyril.llantia Voir le message
    résoudre les message d'erreur à répétition que j'ai
    Surtout n'indique pas de quels messages d'erreurs il s'agit et sur quelles lignes qui se produisent.

    Donc soyez indulgent
    Oui mais non.

    Petit conseil : commence par mettre un peu en forme ton programme et à faire des indentation pour repérer tes structures.
    Quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i=1 to 100
        If i=10 Then
            X=3
        End If
    Next i
    Ca te mettra de repérer les fins de structure (quand elles existent) par rapport aux débuts de structures, donc de bien fermer tes structures et de vérifier qu'elles ne s’emmêlent pas entre elles.
    Parce que ton programme, tel qu'il est, ressemble à un gros plat de spaghettis dans lequel on n'a pas envie de mettre les doigts.
    Je pense que ça va te permettre de corriger plusieurs erreurs.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Tout d'abord merci Menhir pour cette réponse constructive. Mon erreur se trouve à la ligne 29 la valeur de "a" est nothing. Du coup le reste du code me renvoi d'autre erreurs notamment avec les fonctions with. Ainsi je n'arrive pas à trouver pourquoi la fonction "find" ne me trouve pas la valeur souhaité alors que je les ai bien inscrit dans mon tableau Excel . Du coup je me suis demandé si vous pouviez y jeter un petit coup d'œil afin de savoir où se situe le problème. j'ai effectué les indentations afin que le code soit un peu plus lisible:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim t1, t2, t3, t4, t5
    Dim TBLO(9) As String
     
    TBLO(0) = 1
    TBLO(1) = 16
    TBLO(2) = 31
    TBLO(3) = 46
    TBLO(4) = 61
    TBLO(5) = 69
    TBLO(6) = 77
    TBLO(7) = 85
    TBLO(8) = 95
    TBLO(9) = 105
    t1 = Array(Worksheets("MATRICE").Range("a2:a14"))
    t2 = Array(Worksheets("MATRICE").Range("a17:a29"))
    t3 = Array(Worksheets("MATRICE").Range("a32:a44"))
    t4 = Array(Worksheets("MATRICE").Range("a47:a59"))
    t5 = Array(Worksheets("MATRICE").Range("a62:a67"))
    t6 = Array(Worksheets("MATRICE").Range("a70:a75"))
    t7 = Array(Worksheets("MATRICE").Range("a78:a83"))
    t8 = Array(Worksheets("MATRICE").Range("a86:a93"))
    t9 = Array(Worksheets("MATRICE").Range("a96:a103"))
    t10 = Array(Worksheets("MATRICE").Range("a106:a155"))
     
     
    For j = 1 To 10 'TABLEAU
     
        For k = 1 To 5 'CELLULE
     
            With Worksheets("MATRICE").Range("t" & j) 'PLAGE DE RECHERCHE ADAPTATIVE
            Set a = .Find(Worksheets("F1").Cells(3, k), LookIn:=xlValues, LookAt:=xlWhole) 'CHERCHER LES DIFFERENT CRIT DANS LA FEUIL1
            End With
     
                With Worksheets("MATRICE").Range("B" & a.Row & ":" & "CB" & a.Row) 'ON CHERCHE SUR LA LIGNE CORESPONDANTE AU CRITERE CHERCHE
                Set X = .Find(1, LookIn:=xlValues, LookAt:=xlWhole) 'ON CHERCHE LA VALEUR 1 DANS LES MATRICE CORRESPONDANTE
                E = Left(X.Address(ColumnAbsolute:=False), (X.Column < 27) + 2) 'ON DETERMINE LA LETTRE DE LA COLONNE OU SE TROUVE 1
     
                    For l = 0 To 9
                    t = Worksheets("MATRICE").Range(E & TBLO(l)) ' DETERMINE L'INTITULE DE LA COLONNE
     
                        If Not X Is Nothing Then
                        firstAddress = X.Address
     
                            For m = 0 To 4
                            Worksheets("Liste").Range("A3:A80").Offset(0, m) = t 'ECRIRE L'INTITULE DANS LA FEUIL LISTE
     
                                Do
                                Set X = .FindNext(X)
                                E = Left(X.Address(ColumnAbsolute:=False), (X.Column < 27) + 2)
                                t = Worksheets("MATRICE").Range(E & TBLO(l))
                                Loop While Not X Is Nothing And X.Address <> firstAddress
                            Next m
                        End If
                    Next l
                End With
        Next k
    Next j
     
    End Sub
    Merci encore d'avoir répondu à ma requête.
    Bonne fin de journée

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    la fonction find te cherche la cellule avec le critére demandé et te renvoie 2 sorte de variables

    soit elle trouve et elle te donne la cellule et toute ces propriété
    soit elle te donne nothing(qui veut dire rien) inexistante si tu préfere

    alors quand tu fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set a=range(patincouffin).find("toto" arguments)
    avant de te servir de "a.rows " il faut t'assurer que find a bien trouvé a
    pour cela c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if not a is nothing then
    donc pour toi c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     if not a is nothing then
    With Worksheets("MATRICE").Range("B" & a.Row & ":" & "CB" & a.Row)    'ON CHERCHE SUR LA LIGNE CORESPONDANTE AU CRITERE CHERCHE
    'reste du code 
     
    end with
    end if
    en gros encore if imbriqué

    mais je n'ai pas ton classeur sous les yeux mais il est tres rare que des boucles imbriquées aussi nombreuses ne soient pas simplifiables
    je t'invite a reflechir sur la finalité afin de voir si tu t'es pas embrouiller les pinceaux
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par cyril.llantia Voir le message
    Mon erreur se trouve à la ligne 29 la valeur de "a" est nothing.
    Ainsi je n'arrive pas à trouver pourquoi la fonction "find" ne me trouve pas la valeur souhaité alors que je les ai bien inscrit dans mon tableau Excel.
    Es-tu sûr que cette valeur existe dans ta feuille ?
    Si c'est une valeur numérique, est-ce qu'il n'y aurait pas une différence rendue invisible par un arrondi ?
    Si c'est une valeur texte, est-ce qu'il n'y aurait pas des caractère "invisibles" en plus ?
    As-tu essayé de faire cette recherche "manuellement" avec la fonctin de recherche d'Excel ? Ou bien vérifié que ces valeurs sont bien identiques avec une petite formule SI ?

    Citation Envoyé par patricktoulon Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if not a is nothing then
    Ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If a is NOTHING then Exit Sub
    Ce qui permet de mettre fin à la macro sans avoir à ajouter un niveau supplémentaire à la structure.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    bonsoir, merci de vos réponse

    patricktoulon: j'ai fait en sorte que le cas ou "a is nothing" n'existe pas est-ce du fait de la construction de ma base de donnée. Par conséquent, je ne souhaite en aucun cas que "a" est une valeur nulle puisque cette variable se trouve sur une base de donnée "fixe". Donc ici la fonction "find" est juste la pour trouver la valeur d'une cellule (car elle existe obligatoirement) est non chercher qu'il y est bien quelque chose dans la dite cellule.

    Menhir: oui j'ai bien vérifié que les valeurs à chercher existes, en fait le programme fonctionnait (du moins il n'y avait pas d'erreur) avant que je ne vienne rajouter du code. De plus j'ai essayer en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = .Find(Worksheets("F1").Cells(3, k), LookIn:=xlValues, LookAt:=xlWhole)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = .Find(blabla, LookIn:=xlValues, LookAt:=xlWhole)
    et la "a" n'avait plus de valeur nulle. j'ai egalement fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debug.print Worksheets("F1").Cells(3, k)
    et la valeur indiqué était bonne du coup c'est peut-être une erreur de syntaxe du "find" ou bien de mon "range" situé juste au dessus?
    Voilà j'espère avoir été assez clair dans mes explications.
    Passez une bonne soirée.

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonsoir,

    essai d'effectuer cette recherche "manuellement" dans excel .. voir si tu trouve ta valeur...

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par cyril.llantia Voir le message
    oui j'ai bien vérifié que les valeurs à chercher existes,
    Quelle méthode as-tu utilisé pour cette vérification ? As-tu utilisé une des méthodes que je t'ai indiquées ?

    en fait le programme fonctionnait (du moins il n'y avait pas d'erreur) avant que je ne vienne rajouter du code.
    A nouveau, surtout ne prend pas la peine d'indiquer quel code tu as modifié entre le moment où ça marchait bien et celui où ça ne marchait plus...

    De plus j'ai essayer en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = .Find(Worksheets("F1").Cells(3, k), LookIn:=xlValues, LookAt:=xlWhole)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = .Find(blabla, LookIn:=xlValues, LookAt:=xlWhole)
    et la "a" n'avait plus de valeur nulle.
    Pour moi, c'est une preuve claire que ce que tu as dans la cellule ne correspond pas à ce que tu cherches.

    Essaye de mettre dans ta feuille F1 la formule :
    Fais de même pour les autres cellules de la ligne 3.
    Regarde si ça te renvoie VRAI ou FAUX.

    j'ai egalement fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debug.print Worksheets("F1").Cells(3, k)
    et la valeur indiqué était bonne
    Ca ne veut rien dire. Il suffit qu'il y ait un espace en fin de chaine ou un caractère encore moins visible pour que ça n'apparaisse pas avec un debug.print.
    Je pose la question pour la seconde fois : QUELLE TYPE DE VALEUR SE TROUVE DANS CES CASES ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    bbil: j'ai effectuer un recherche avec la fonction recherchev est sa fonctionne ce qui est normal puisque la valeur se trouve dans la plage indiqué. Je pense qu'il serait judicieux de vous joindre le fichier excel afin que vous puissiez voir comment est construite ma base de donnée.

    Merci de consacrer du temps à mon problème,
    Bonne journée.
    Fichiers attachés Fichiers attachés

  10. #10
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par cyril.llantia Voir le message
    Je pense qu'il serait judicieux de vous joindre le fichier excel
    http://www.developpez.net/forums/d84...s-discussions/
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Menhir: ZENN.... et bien comme je l'ai indiquer je n'est pas modifier le code j'en est rajouté à partir de la ligne 40 jusqu'à la fin du code.
    Quelle méthode as-tu utilisé pour cette vérification ? As-tu utilisé une des méthodes que je t'ai indiquées ?
    j'ai rentrer cette formule dans excel =RECHERCHEV(A3;MATRICE!A2:A14;1;FAUX)
    Pour moi, c'est une preuve claire que ce que tu as dans la cellule ne correspond pas à ce que tu cherches
    et bien avec la formule je trouve la bonne valeurs donc sa ne vient pas de la syntaxe du texte rentré. Pour le reste je vais essayer.
    Bonne journée.

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Menhir: j'ai remplace les cellule de la ligne 3 par "blabla" puis j'ai modifier le code en conséquence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set a = .Find("blabla", LookIn:=xlValues, LookAt:=xlWhole)
    Là "a" est vrai du coup je ne vois toujours pas où ce trouve le problème.

    Si vous ne souhaitez pas ouvrir le fichier excel, je vais tentez d'expliquer ce que je veux faire avec ce code. Tout d'abord, dans la feuille "matrice" ce trouve 10 matrice à double entrée de taille variable, dans la feuille "F1" ce trouve l'interface utilisateur où, à la ligne 3, ce trouve 5 listes déroulantes qui prennent leur valeurs dans la feuille "liste". Je viens donc avec le programme chercher la valeur des cellules de la ligne 3 de la feuille "F1" pour trouver les correspondances dans la première colonne de la feuille "matrice" des 10 matrices (car il y a plusieurs fois la même valeur). Ensuite je cherche dans les différentes ligne associé de la feuille "matrice" les valeurs correspondante des cellules avec 1 à l'intérieur. J'en récupère les adresses pour en extraire les colonnes. Ensuite je récupère les noms des colonnes correspondant à la matrice où a été trouvé la valeur 1 pour modifier les différentes listes déroulante dans la feuille "liste". Par exemple l'utilisateur choisie en A3 une valeur dans la liste déroulante, puis, le programme ce lance est réduit les choix des listes déroulantes des cellules B3 jusqu'à E3. J'espère que je ne vous est pas perdu en cours de route avec ces explications.

    Bonne journée.

  13. #13
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par cyril.llantia Voir le message
    ..
    Là "a" est vrai du coup je ne vois toujours pas où ce trouve le problème.
    ...
    tu veux dire quoi en disant a est vrai ? ou est déclaré ta variable a ? ( tu aurais pu utiliser un nom plus long et plus parlant pour ta variable elle serait plus facile à rechercher dans ton code..)

    si cela veut dire que a est trouvé .. , quel est maintenant ton problème ..? message d'erreur?

    nota: en passant quand tu en auras fini avec ton a il faudra revoir le traitement de ton x .. tu nous fais un x=findnext....et ensuite tu utilise X sans tester si le retour est Nothing ou pas ...

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    bbil: Et bien je veut dire par la que "a" n'est plus a nothing. sa ne marche que lorsque j'ai effectuer cette recherche "manuelle". L'erreur persiste si je remet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set a = .Find(Worksheets("F1").Cells(3, k), LookIn:=xlValues, LookAt:=xlWhole)
    De plus j'ai également modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With Worksheets("MATRICE").Range("t" & j) 
    Set a = .Find(Worksheets("F1").Cells(3, k), LookIn:=xlValues, LookAt:=xlWhole)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With Worksheets("MATRICE").Range("a2:a14")         
    Set a = .Find(Worksheets("F1").Cells(3, k), LookIn:=xlValues, LookAt:=xlWhole)
    Et là aussi la fonction "find" trouve une correspondance du coup je me demande si l'erreur ne ce situe pas sur le range?

  15. #15
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    oups j'avais pas vu cela ... encore un débutant qui veut pouvoir changer dynamique le nom de variables
    tiens regarde la discussion : http://www.developpez.net/forums/d15...tion-variable/ et inspire toi du principe utiliser par Igloobel en #8

    utilise un tableau pour tes variables t....



    pense aussi à rajouter en haut de toutes tes pages de codes la ligne :


  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Super merci bbil ! je suppose que c'est la même chose pour sa?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Worksheets("MATRICE").Range("B" & a.Row & ":" & "CB" & a.Row)
    Merci de ta réponse

  17. #17
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    non cela n'as rien à voir, a est bien le nom de ta variable Range .. et .row et la propriété qui renvoi la ligne de celle-ci .... ensuite la concaténation effectué avec le signe & permet de retrouver l'adresse de la cellule et pas le nom d'une variable VB.

  18. #18
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    D'accord super merci beaucoup.
    Bonne continuation.

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

Discussions similaires

  1. ouvrir un fichier dans un programme VBA sous excel
    Par bryan dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/01/2008, 14h38
  2. Réponses: 3
    Dernier message: 12/07/2007, 02h40
  3. Réponses: 1
    Dernier message: 13/04/2007, 08h48
  4. Problemes avec grosseur de requete en VBA sous Access
    Par acheo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/04/2007, 11h58
  5. Probleme d'éxécution de mon programme
    Par BigWill dans le forum C
    Réponses: 8
    Dernier message: 28/02/2007, 10h18

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