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 :

Message d'erreur sur un code formulaire [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut Message d'erreur sur un code formulaire
    Bonjour

    J'ai un petit souci avec un formulaire que j'ai trouvé sur un site et j'aimerai lui apporter une modification.
    J'ai rajouter au code 4 textbox et j'ai toujours un message d'erreur.
    "Impossible de définir la propriété List.
    Valeur de propriété non valide"
    Si quelqu'un pourrai me donner la solution sa serai sympa;

    Je vous remercie d'avance

    Cordialement

    Max
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Le problème vient du fait que tu utilises plus de colonnes qu'une Listbox peut prendre. Le maximum est 10 (Index 0 à 9)

    Tu pourrais toujours regarder du côté du contrôle ListView, mais ça se travaille différemment...
    MPi²

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Bonjour Parmi

    Je te remercie de ton invention
    Y a t-il pas une solution sans passer par le contrôle ListView.

    Je te remercie et te souhaite une bonne après midi

    @+
    Max

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Suite à l'observation de parmi, tu peux (peut-être) rassembler des cellules, quitte à revoir ton traitement après avec un split (au cas où)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ...
            With Me.ListBox1
                .List(.ListCount - 1, 1) = Sheets("Feuil1").Cells(nl, 2)
                .List(.ListCount - 1, 2) = Sheets("Feuil1").Cells(nl, 3)
                .List(.ListCount - 1, 3) = Sheets("Feuil1").Cells(nl, 4)
                .List(.ListCount - 1, 4) = Sheets("Feuil1").Cells(nl, 5) & " " & Sheets("Feuil1").Cells(nl, 6)
                .List(.ListCount - 1, 5) = Sheets("Feuil1").Cells(nl, 7) & " " & Sheets("Feuil1").Cells(nl, 8)
                .List(.ListCount - 1, 6) = Sheets("Feuil1").Cells(nl, 9) & " " & Sheets("Feuil1").Cells(nl, 10)
                .List(.ListCount - 1, 7) = Sheets("Feuil1").Cells(nl, 11) & " " & Sheets("Feuil1").Cells(nl, 12)
                .List(.ListCount - 1, 8) = Sheets("Feuil1").Cells(nl, 13)
                .List(.ListCount - 1, 9) = nl
            End With
    ...
    PS : penses à remettre le bon nombre de colonnes dans ta listbox
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Ou encore utiliser 2 listbox, côte-à-côte, mais ce n'est pas simple à gérer...
    MPi²

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Bonjour casefayere,

    Je te remercie mais j'ai toujours un petit problème de message.
    Impossible de lire la propriété Column. Argument non valide
    Je te remercie

    @+

    Max

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    As-tu ajusté le ColumnsCount dans ton code ou dans les propriétés de la Listbox ?
    MPi²

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Re,

    Oui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For x = 0 To 11
     
        Me.Controls("TextBox" & x + 1).Value = Me.ListBox1.Column(x, Me.ListBox1.ListIndex)
    Next x
    @+
    Max

  9. #9
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    On parlait des propriétés de la listbox, voir ci-dessous
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Re Dom

    Alors déjà sa plante pas. mais le souci j'ai deux valeur de colonne par textbox
    a partir de la 5éme TextBox

    @+

    Max

  11. #11
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Souviens-toi, j'ai écris :
    ... quitte à revoir ton traitement après avec un split (au cas où)
    à adapter
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Oui

    cela est vrai mais je ne suis pas capable de modifier tous le code ?

    @+

  13. #13
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Veux-tu essayer ce fichier dont j'ai changé légèrement ces codes :
    Dans ce premier code, j'ai changé le séparateur " " par "|" car tu aurais eu un problème en utilisant Split dans le 2ème code, l'espace étant le séparateur par défaut, or dans tes cellules plusieurs textes comportent des espaces.
    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
    Private Sub ComboBox1_Change()
    Me.ListBox1.Clear
    For Each cel In pl
        If CStr(cel.Value) = CStr(Me.ComboBox1.Value) Then
            nl = cel.Row
            Me.ListBox1.AddItem Sheets("Feuil1").Cells(nl, 1)
            With Me.ListBox1
                .List(.ListCount - 1, 1) = Sheets("Feuil1").Cells(nl, 2) & "|" & Sheets("Feuil1").Cells(nl, 3)
                .List(.ListCount - 1, 2) = Sheets("Feuil1").Cells(nl, 4) & "|" & Sheets("Feuil1").Cells(nl, 5)
                .List(.ListCount - 1, 3) = Sheets("Feuil1").Cells(nl, 6) & "|" & Sheets("Feuil1").Cells(nl, 7)
                .List(.ListCount - 1, 4) = Sheets("Feuil1").Cells(nl, 8) & "|" & Sheets("Feuil1").Cells(nl, 9)
                .List(.ListCount - 1, 5) = Sheets("Feuil1").Cells(nl, 10) & "|" & Sheets("Feuil1").Cells(nl, 11)
                .List(.ListCount - 1, 6) = Sheets("Feuil1").Cells(nl, 12)
                .List(.ListCount - 1, 7) = nl
            End With
        End If
    Next cel
    If Me.ListBox1.ListCount = 1 Then Me.ListBox1.ListIndex = 0
    End Sub
    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
    Private Sub listbox1_Click()
    Dim Chemin As String
    Dim ChSplit, y As Integer
     
    ' ****************************************************
    ' Indiques exactement le répertoire de tes images
    ' ****************************************************
    Chemin = "C:\Users\Max\Desktop\Dosier_animal\Photos_Chien\"
    Me.Controls("TextBox1").Value = Me.ListBox1.Column(0, Me.ListBox1.ListIndex)
    y = 1
    For x = 1 To 10 Step 2
      ChSplit = Split(Me.ListBox1.Column(y, Me.ListBox1.ListIndex), "|")'voila le séparateur
      Me.Controls("TextBox" & x + 1).Value = ChSplit(0)
      Me.Controls("TextBox" & x + 2).Value = ChSplit(1)
      y = y + 1
    Next x
    Me.Controls("TextBox12").Value = Me.ListBox1.Column(6, Me.ListBox1.ListIndex)
    Me.Label14.Picture = LoadPicture(Chemin & Me.ListBox1 & ".jpg")
    nl = Me.ListBox1.Column(7, Me.ListBox1.ListIndex)
    With Me.TextBox1
        .SetFocus
        .SelStart = 0
        .SelLength = Len(.Value)
    End With
    End Sub
    PS : J'ai remarqué que tu possèdes un lien sur ton fichier (en M1), qu'à ta place, j'aurais enlevé s'il ne sert à rien car tu risques de heurter des sensibilités

    Même si je viens de t'envoyer une proposition, après réflexion, je me demande s'il était bien utile de mettre toutes ces colonnes dans ta listbox, alors que tu peux voir les mêmes renseignements dans tes textbox. Il serait facile d'adapter le fichier, à toi de voir......
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  14. #14
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Re Dom

    Je te remercie, oui tu as raison sur ce point
    je me demande s'il était bien utile de mettre toutes ces colonnes dans ta listbox, alors que tu peux voir les mêmes renseignements dans tes textbox. Il serait facile d'adapter le fichier
    A partir du moment que j'ai les même renseignements dans les textbox sa me convient très bien.

    Je te remercie pour le temps passer et te souhaite une bonne soirée

    Max

  15. #15
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    J'ai oublié de réactiver ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Label14.Picture = LoadPicture(Chemin & Me.ListBox1 & ".jpg")
    dans le dernier exemple

    si celui-ci te convient, n'oublies pas de cliquer sur

    Bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  16. #16
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Bonjour Dom

    Je te remercie pour la ligne d'activation.

    Le fichier que tu as fait me convient très bien, mais juste une petite modif, après avoir essayer je me suis aperçu que:
    Si je n'est pas l'image correspondant dans mon fichier j'ai un message me rappelant
    "Fichier ......Introuvable", et il reste la dernière image afficher, alors j'ai essayer de lui mettre une ligne de commande pour avoir un logo a la place.
    Cette ligne est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    On Error Resume Next: Me.Label14.Picture = LoadPicture(ActiveWorkbook.Path & "\Photos_Chien\" & "vide")
    et je les mise ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Chemin = ThisWorkbook.Path & "\Photos_Chien\"
    For x = 0 To 11
     
        Me.Controls("TextBox" & x + 1).Value = Me.ListBox1.Column(x, Me.ListBox1.ListIndex)
    Next x
    '
    If Dir(Chemin & Me.ListBox1 & ".jpg") <> "" Then
      Me.Label14.Picture = LoadPicture(Chemin & Me.ListBox1 & ".jpg")
    Else
    On Error Resume Next: Me.Label14.Picture = LoadPicture(ActiveWorkbook.Path & "\Photos_Chien\" & "vide")
    MsgBox "Fichier " & Me.ListBox1 & " introuvable"
    End If
    nl = Me.ListBox1.Column(12, Me.ListBox1.ListIndex)
    Mais sa ne fonctionne pas, j'ai du me tromper, si tu pouvais regarder sa me rendrez service.
    Je joint mon logo se nommant "Vide"
    Je te remercie de ton aide et te souhaite une bonne journée

    Max
    Fichiers attachés Fichiers attachés

  17. #17
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour Max, re le forum,
    Essaies ce code que je ne peux vérifier (pas d'image chez moi)
    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
    Private Sub listbox1_Click()
    Dim Chemin As String, Dl As Integer
     
    ' ****************************************************
    ' Indiques exactement le répertoire de tes images
    ' ****************************************************
    Chemin = "C:\Users\Max\Desktop\Dosier_animal\Photos_Chien\"
     
    With Sheets("Feuil1")
      Dl = .Range("A" & .Rows.Count).End(xlUp).Row
      nl = .Range("A2:A" & Dl).Find(ListBox1).Row
      For x = 1 To 12
        Me.Controls("TextBox" & x).Value = .Cells(nl, x)
      Next x
    End With
    On Error Resume Next
    Me.Label14.Picture = LoadPicture(Chemin & Me.ListBox1 & ".jpg")
    If Err <> 0 Then
      MsgBox "pas d'image disponible pour cet animal"
      Me.Label14.Picture = Empty
    End If
    on error goto 0
    With Me.TextBox1
        .SetFocus
        .SelStart = 0
        .SelLength = Len(.Value)
    End With
    End Sub
    Mais après essai, j'ai remarqué un autre bug, quand on choisit par race, il va faloir contourner le problème
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  18. #18
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Bonjour Dom

    Non sa n'a rien changer, le but et que lorsque je n'est pas l'image approprier, a la place de l'image il s'affiche le "logo"
    @+

    Max

  19. #19
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Enregistres le logo (vide.jpg) dans le même dossier que tes photos et adaptes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...
    If Err <> 0 Then
      MsgBox "pas d'image disponible pour cet animal"
      On Error GoTo 0
      Me.Label14.Picture = LoadPicture(Chemin & "vide.jpg")
    End If
     
    ...
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  20. #20
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Re,

    Oui la sa fonctionne bien j'ai le logo qui se m'est a la place de l'image si celle ci n'est pas dans le dossier.
    Sur avant dernier post u ma dit ceci:

    Mais après essai, j'ai remarqué un autre bug, quand on choisit par race, il va falloir contourner le problème
    A tu trouver la solution ?

    @+

    Max

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Message d'erreur sur un code d'enregistrement
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/11/2013, 16h32
  2. Réponses: 4
    Dernier message: 24/02/2010, 06h37
  3. Message d'erreur sur un code
    Par FCL31 dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/09/2007, 14h55
  4. Message d'erreur sur un formulaire de recherche
    Par FCL31 dans le forum Modélisation
    Réponses: 1
    Dernier message: 17/08/2007, 15h02
  5. Message erreur sur Mise à jour formulaire
    Par Daniel MOREAU dans le forum Access
    Réponses: 6
    Dernier message: 06/10/2006, 08h52

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