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 :

Recherche intuitive de Boisgontier Jacques


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut Recherche intuitive de Boisgontier Jacques
    Bonjour,
    J'ai essayé d'adapter la macro de Mr Boigontier Jacques mais j'éprouve pas mal de difficultés.

    Nom : Image1.png
Affichages : 2070
Taille : 45,4 Ko

    Ma feuille se nomme "Suivi Referentiel documentaire"
    La recherche se fait à partir de la colonne E (TitreDocument) puis par type de document (colonne D).
    A partir de ces deux recherches, le reste doit apparaître.

    J'ai joint le fichier de Mr Boisgontier ainsi que le mien

    Voici mon code qui ne fonctionne pas : bloque à la ligne 23
    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
    Option Compare Text
    Dim f, ligneEnreg, choix1()
    Private Sub UserForm_Initialize()
      Set f = Sheets("Suivi Referentiel documentaire")
      choix1 = Application.Transpose(f.Range("E2:E" & f.[E65000].End(xlUp).Row).Value)
      Me.ChoixTitre.List = SansDoublons(choix1)
      ligneEnreg = f.[E65000].End(xlUp).Row + 1
      Me.ChoixTitre.SetFocus
    End Sub
    Private Sub ChoixTitre_Change()
      If Me.ChoixTitre.ListIndex = -1 And IsError(Application.Match(Me.ChoixTitre, choix1, 0)) Then
       Me.ChoixTitre.List = Filter(SansDoublons(choix1), Me.ChoixTitre.Text, True, vbTextCompare)
       Me.ChoixTitre.DropDown
      Else
        ChoixTitre_click
      End If
    End Sub
    Private Sub ChoixTitre_click()
      'For k = 1 To 4
      '  Me("Textbox" & k) = ""
      ' Next k
      a = f.Range("E2:D" & f.[D65000].End(xlUp).Row).Value
      Dim b(): ReDim b(1 To UBound(a))
      j = 0
      For i = 1 To UBound(a)
         If a(i, 1) = Me.ChoixTitre Then j = j + 1: b(j) = a(i, 2)
      Next i
      ReDim Preserve b(1 To j)
      Me.ChoixType.List = b
      Me.ChoixType.SetFocus
      If Val(Application.Version) > 10 Then SendKeys "{f4}"
    End Sub
    Private Sub ChoixType_click()
     For i = 2 To f.[D65000].End(xlUp).Row
      If f.Cells(i, "a") = Me.ChoixTitre And f.Cells(i, "b") = Me.ChoixType Then
        ligneEnreg = i
        For Each c In Me.Frame_Civilite.Controls
         If f.Cells(ligneEnreg, "c") = c.Caption Then c.Value = True
        Next c
        Me.Controls("TextBox1") = f.Cells(ligneEnreg, 1)
        Me.Controls("TextBox2") = f.Cells(ligneEnreg, 2)
        For k = 3 To 6
            Me.Controls("TextBox" & k) = f.Cells(ligneEnreg, k + 1)
          Next k
        End If
      Next i
    End Sub
     
    Function SansDoublons(a())
       Set d = CreateObject("Scripting.Dictionary")
       For Each c In a
          d(c) = ""
       Next c
       b = d.keys
       SansDoublons = b
    End Function
    Y a t'il une âme charitable pour m'aider ?

    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    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 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    a est un tableau de dimension 2 sur ta ligne 22
    donc tu dois préciser la dimension dans tes appels Lbound() et Ubound()

    la méthode de Jacques Boisgontier est basée sur un tableau unidimensionnel où la dimension n'est pas à gérer, puisqu'il n'y en a qu'une seule

  3. #3
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Bonjour Joe,

    Je ne comprend pas trop !

    Est ce parce que mes données sont dans un tableau et non pas mises comme Boisgontier J ?

    Question Vba, je ne suis pas au high level plutôt low

    Peux tu m'aider ?

    Merci

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour ,
    Comme l'a clairement expliqué Joe, en ligne 22 du code que tu publies, tu génères un tableau à deux dimensions or en ligne 23, tu essayes de redimensionner la variable tableau à une dimension et cela ne peut pas fonctionner.
    A lire Utiliser les variables tableaux en VBA Excel et Conceptualisation des variables tableau en VBA et Application à l'optimisation du code sous Excel et tout particulièrement le chapitre VIII-B. Alimentation d'une plage via une variable tableau
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    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 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    cette ligne de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = f.Range("E2:D" & f.[D65000].End(xlUp).Row).Value
    prend une plage de deux colonnes pour la mettre dans un tableau "a"
    on a donc deux dimensions : les lignes et les colonnes
    et à la manière de l'utilisation d'un Cells(x,y) pour désigner une cellule de la feuille, on va faire a(x,y) pour naviguer dans le tableau
    le nombre de lignes sera défini par Ubound(a,1) (indice maximum de la dimension 1) et le nombre de colonnes par Ubound(a,2) (indice maximum de la dimension 2)

    Ps : quand on transfère des cellules vers un tableau, même si il n'y a qu'une ligne ou une colonne, le tableau sera toujours en 2D et en Base 1
    il suffit de transposer le tableau (une fois pour 1 colonne et 2 fois pour une ligne) et on la ramène à une seule dimension

    Ceci est encore mieux expliqué que ce modeste message dans les liens qu'a astucieusement fourni Philippe

  6. #6
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonsoir,

    Ne pas utiliser de cellules fusionnées!
    Il y a au moins un pb de fond: la recherche en cascade ne peut pas fonctionner sur les colonnes E et D (pour fiches de progres , il y a 2 type formulaire)


    Boisgontier
    Fichiers attachés Fichiers attachés

  7. #7
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Citation Envoyé par boisgontierjacques Voir le message
    Bonsoir,

    Ne pas utiliser de cellules fusionnées!
    Il y a au moins un pb de fond: la recherche en cascade ne peut pas fonctionner sur les colonnes E et D (pour fiches de progres , il y a 2 type formulaire)


    Boisgontier
    Bonjour,
    Je tiens a vous remercier pour votre reponse ainsi que le fichier joint.
    Bonnes fetes de fin d'années.

    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour ,
    Comme l'a clairement expliqué Joe, en ligne 22 du code que tu publies, tu génères un tableau à deux dimensions or en ligne 23, tu essayes de redimensionner la variable tableau à une dimension et cela ne peut pas fonctionner.
    A lire Utiliser les variables tableaux en VBA Excel et Conceptualisation des variables tableau en VBA et Application à l'optimisation du code sous Excel et tout particulièrement le chapitre VIII-B. Alimentation d'une plage via une variable tableau
    Bonjour Philippe,
    Merci à vous

  8. #8
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonjour,

    >
    Cependant j'aurais voulu savoir comment faire pour que le reste des renseignements qui figure dans le tableau apparaisse également dans le UserForm ?
    Le pb de fond subsiste

    Boisgontier
    Fichiers attachés Fichiers attachés

  9. #9
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Bonjour et un grand merci pour votre aide.
    Concernant le pb du doc en double, cela reste passager car dès que le doc en "Evolution" sera validé, il sera remplacé par celui "A jour".

    Cordialement

    Juste une question pour le fun
    Quel code mettre pour :
    1 - Faire une nouvelle recherche donc réinitialiser les zones
    2 - Un bouton pour imprimer le userform
    3 - un bouton pour quitter le userform

    Merci à vous

  10. #10
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Bjr,
    J'ai un petit souci avec la liste déroulante. Les espaces au niveau des paranthéses ou les apostrophes ne correspondent pas à la syntaxe de la liste réelle.
    comment y remédier ?
    Comment supprimer la casse dans la recherche car si j'ai en réalité : CAD002
    et que je saisi CAD 002, je ne trouverais pas mon document.

    Sinon petit bug dans la macro : A chaque fois que je l'utilise, le pavé numérique se désactive.

    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
    Option Compare Text
    Dim f, ligneEnreg, choix1()
    Private Sub UserForm_Initialize()
      Set f = Sheets("Suivi Referentiel documentaire")
      choix1 = Application.Transpose(f.Range("E2:E" & f.[E65000].End(xlUp).Row).Value)
      Me.ChoixTitre.List = SansDoublons(choix1)
      ligneEnreg = f.[E65000].End(xlUp).Row + 1
      Me.ChoixTitre.SetFocus
    End Sub
    Private Sub ChoixTitre_Change()
      If Me.ChoixTitre.ListIndex = -1 And IsError(Application.Match(Me.ChoixTitre, choix1, 0)) Then
       Me.ChoixTitre.List = Filter(SansDoublons(choix1), Me.ChoixTitre.Text, True, vbTextCompare)
       Me.ChoixTitre.DropDown
      Else
        ChoixTitre_click
      End If
    End Sub
    Private Sub ChoixTitre_click()
      a = f.Range("D2:E" & f.[D65000].End(xlUp).Row).Value
      Dim b(): ReDim b(1 To UBound(a))
      j = 0
      For i = 1 To UBound(a)
         If a(i, 2) = Me.ChoixTitre Then j = j + 1: b(j) = a(i, 1)
      Next i
      ReDim Preserve b(1 To j)
      Me.choixType.List = b
      Me.choixType.SetFocus
      If Val(Application.Version) > 10 Then SendKeys "{f4}"
    End Sub
    Private Sub ChoixType_click()
     For i = 2 To f.[D65000].End(xlUp).Row
      If f.Cells(i, "e") = Me.ChoixTitre And f.Cells(i, "d") = Me.choixType Then
        ligneEnreg = i
        For k = 1 To 3
          Me("textbox" & k) = f.Cells(ligneEnreg, k)
        Next k
        For k = 6 To 11
          Me("textbox" & k) = f.Cells(ligneEnreg, k)
        Next k
        End If
      Next i
    End Sub
     Function SansDoublons(a())
       Set d = CreateObject("Scripting.Dictionary")
       For Each c In a
          d(c) = ""
       Next c
       b = d.keys
       SansDoublons = b
    End Function
    Cordialement
    Images attachées Images attachées  

  11. #11
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonjour,

    cf PJ

    JB
    Fichiers attachés Fichiers attachés

  12. #12
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Bonjour et merci

    Je viens de créer le bouton RAZ que j'ai associé a votre commande par contre les deux zones de recherches (listes déroulantes) ne se blanchissent pas.
    Concernant la suppression du pavé numérique, le pb subsiste.
    Comment faire pour imprimer le userform par l'intermediaire d'un bouton de commande ?

    Encore merci pour votre aide
    Cordialement

  13. #13
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Citation Envoyé par boisgontierjacques Voir le message
    Bonjour,

    cf PJ

    JB
    Bonjour et bonne année,

    Pourriez vous m'expliquer comment vous avez fait pour que les apostrophes et les parenthèses de la feuille soient identiques dans la liste deroulante du Userform1 ?
    J'ai refait un Userform dans mon classeur original mais j'ai toujours les espaces aux parenthèses ainsi que les apostrophes comme dans l'image de mon post.
    Par contre tjrs un pb avec la déconnection du pavé numerique à chaque fois que je declenche la macro.

    Cordialement

  14. #14
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Citation Envoyé par boisgontierjacques Voir le message
    Bonjour,

    cf PJ

    JB
    Bonjour,

    Ayant dû ajouter et déplacer certaines colonnes, j'ai dû également modifier par logique le code VBA.
    Mes colonnes sont désormais comme ceci :
    Nom : Image1.png
Affichages : 1687
Taille : 59,5 Ko

    Mon Userform est le suivant :
    Nom : Image2.png
Affichages : 1847
Taille : 79,9 Ko
    La liste intuitive déroulante du formulaire correspond désormais à la colonne I et le type de document à sélectionner correspondant à la colonne B.

    Voici le code modifié mais dès que je sélectionne mon document dans la liste déroulante, la macro se bloque sur la ligne 38 ReDim Preserve b(1 To J)

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Option Compare Text
    Dim f, ligneEnreg, choix1()
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then Cancel = True 'Désactive le bouton FERMER du UserForm
    End Sub
    Private Sub Imprimer_Click()
        Me.PrintForm
    End Sub
    Private Sub Quitter_Click()
        Unload Me
        UserForm_Referentiel_doc.Show
    End Sub
    Private Sub UserForm_Initialize()
     
        Set f = Sheets("Suivi documentaire")
        ' I correspond à la colonne concernant l'intitulé des documents
        choix1 = Application.Transpose(f.Range("I2:I" & f.[I65000].End(xlUp).Row).Value)
        Me.ChoixTitre.List = SansDoublons(choix1)
        ligneEnreg = f.[I65000].End(xlUp).Row + 1
        Me.ChoixTitre.SetFocus
    End Sub
    Private Sub ChoixTitre_Change()
        If Me.ChoixTitre.ListIndex = -1 And IsError(Application.Match(Me.ChoixTitre, choix1, 0)) Then
            Me.ChoixTitre.List = Filter(SansDoublons(choix1), Me.ChoixTitre.Text, True, vbTextCompare)
            Me.ChoixTitre.DropDown
        Else
            ChoixTitre_click
        End If
    End Sub
    Private Sub ChoixTitre_click()
    'B correspond au type de documents et I aux intitulés
        a = f.Range("B2:I" & f.[B65000].End(xlUp).Row).Value
        Dim b(): ReDim b(1 To UBound(a))
        J = 0
        For I = 1 To UBound(a)
            If a(I, 2) = Me.ChoixTitre Then J = J + 1: b(J) = a(I, 1)
        Next I
        ReDim Preserve b(1 To J)
        Me.choixType.List = b
        Me.choixType.SetFocus
        If Val(Application.Version) > 10 Then SendKeys "{f4}"
        Me.choixType = ""
        raz
    End Sub
    Private Sub ChoixType_click()
    'B correspond au type de documents, "i" aux intitulés et "b" aux types de doc
        For I = 2 To f.[B65000].End(xlUp).Row
            If f.Cells(I, "i") = Me.ChoixTitre And f.Cells(I, "b") = Me.choixType Then
                ligneEnreg = I
                For K = 1 To 3
                    Me("textbox" & K) = f.Cells(ligneEnreg, K)
                Next K
                For K = 6 To 11
                    Me("textbox" & K) = f.Cells(ligneEnreg, K)
                Next K
            End If
        Next I
    End Sub
    Function SansDoublons(a())
        Set d = CreateObject("Scripting.Dictionary")
        For Each c In a
            d(c) = ""
        Next c
        b = d.keys
        SansDoublons = b
    End Function
    Sub raz()
        For K = 1 To 3
            Me("textbox" & K) = ""
        Next K
        For K = 6 To 11
            Me("textbox" & K) = ""
        Next K
    End Sub
    Cordialement,
    Graphikris.

  15. #15
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    l
    a macro se bloque sur la ligne 38
    Et tu t'abstiens bien évidemment de rapporter le message d'erreur ...
    Bon --->>
    Ta ligne 38 sera en erreur si (et uniquement si) J = 0 (et donc qu'aucun article ne correspond au critère défini en ta ligne 36)
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  16. #16
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Oui c'est vrai, j'ai omis d'indiquer le msg d'erreur :
    Erreur d'éxécution '9':
    l'indice n'appartient pas à la sélection
    De plus je ne sais pas comment faire pour la case " Numerotation du document ", je dois concaténer la colonne C et la D
    Je dois également rajouter une donnée au formulaire : " Numéro ancien document " (colonne G)

    Sinon j'ai mis un extrait de mon fichier en PJ

    Merci
    Fichiers attachés Fichiers attachés

  17. #17
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Sinon j'ai mis un extrait de mon fichier en PJ
    Que je n'ouvrirai pas (je n'ouvre jamais un classeur tiers).
    Erreur d'éxécution '9':
    l'indice n'appartient pas à la sélection
    ce qui confirme ce que je signalais (j = 0):
    Ta ligne 38 sera en erreur si (et uniquement si) J = 0 (et donc qu'aucun article ne correspond au critère défini en ta ligne 36)
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  18. #18
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Au post #11, tout fonctionnait bien (dommage, il faut ouvrir une PJ)
    Pourquoi " J " ne fonctionne plus juste parce que j'ai modifié des colonnes ???

  19. #19
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    J'ai simplement expliqué la raison de ce que tu dénonçais, à savoir :
    Voici le code modifié mais dès que je sélectionne mon document dans la liste déroulante, la macro se bloque sur la ligne 38 ReDim Preserve b(1 To J)
    Voilà.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  20. #20
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    tres bien mais que faire pour que ça fonctionne avec mon tableau ???

Discussions similaires

  1. [XL-2010] VBA EXCEL: Recherche intuitive dans une cellule
    Par LANGAZOU dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/11/2015, 20h45
  2. Ajout d'un nouveau combobox avec recherche intuitive
    Par LANGAZOU dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/08/2015, 21h29
  3. Réponses: 1
    Dernier message: 09/06/2015, 20h56
  4. [AJAX] Recherche intuitive en Php
    Par Kami81 dans le forum AJAX
    Réponses: 10
    Dernier message: 16/09/2009, 18h02
  5. [AC-2007] Recherche intuitive auto
    Par le_dilem dans le forum IHM
    Réponses: 5
    Dernier message: 22/07/2009, 09h58

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