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 :

Erreur d'exécution: 13 incompatibilité de type


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 67
    Points
    67
    Par défaut Erreur d'exécution: 13 incompatibilité de type
    Bonsoir

    J'ai une erreur d"exécution 13 à l'ouverture d'un formulaire.

    je pense que c'est le code en rouge,
    les valeurs de la colonne D sont des dates.
    Je ne comprend pas
    Merci pour une 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
    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
    Private Sub UserForm_Initialize()
    
       Set f = Sheets("BD")
       Set Rng = f.Range("A2:M" & f.[A65000].End(xlUp).Row)
       BD = Rng.Value
       
      Set d = CreateObject("Scripting.Dictionary")
      BD = f.Range("A2:N" & f.[A65000].End(xlUp).Row).Value
      
      Me.ListBox1.List = BD
      For i = LBound(BD) To UBound(BD)
        d(Year(BD(i, 4))) = ""
      Next i
      
      Me.ComboBox1.List = d.keys
      Me.ListBox1.ColumnCount = 14
       
       Ncol = Rng.Columns.Count
       Set dte = Range([D2], [A65536].End(xlUp))
       
       
       Set D2 = CreateObject("Scripting.Dictionary")
       Set d3 = CreateObject("Scripting.Dictionary")
       
       D2.CompareMode = vbTextCompare
       d3.CompareMode = vbTextCompare
       For i = LBound(BD) To UBound(BD)
       
        
        If Not D2.Exists(BD(i, 2)) Then D2(BD(i, 2)) = ""
        If Not d3.Exists(BD(i, 3)) Then d3(BD(i, 3)) = ""
       Next i
     
       temp = D2.keys
       Call Tri(temp, LBound(temp), UBound(temp))
       Me.ComboBox2.List = temp
       temp = d3.keys
       Call Tri(temp, LBound(temp), UBound(temp))
       Me.ComboBox3.List = temp
       Me.ListBox1.Clear
       
       Me.ComboBox1.ListIndex = -1
       Me.ComboBox2.ListIndex = -1
       Me.Enreg = f.[A65000].End(xlUp).Row + 1
       
       Me.ComboBox5.ColumnCount = 2
       Me.ComboBox5.ColumnWidths = "350,40"
       Me.ComboBox5.RowSource = "ceremonie"
       
        Me.Frame4.Visible = False
       F_calendrier2datesForm.Hide
    End Sub

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Dans un dictionnaire, tu dois avoir deux valeurs : un indice et une valeur.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Merci pour la réponse mais je ne vois pas le problème, désolé pour mon faible niveau VBA.

    merci

  4. #4
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,
    Un dictionnaire se contruit avec des doublons (clef;valeur). Il ne doit pas y avoir 2 clefs indentiques. Un exemple de dictionnaire, écrit "à la main" est :
    salade = {(pomme;3);(poire;4);(banane;3)} où les clefs sont les fruits et les valeurs le nombre de fruits.
    Si tu veux récupérer la valeur pour une clef donnée, tu utilises la propriété Item :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valeurCherchee = salade.Item("pomme")
    valeurCherchee sera, alors égale à 3.
    J'espère que ça te permettra d'avancer

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    bonjour
    Merci beaucoup
    c'est plus clair expliqué comme ça
    j'ai pu régler le problème

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 951
    Points
    55 951
    Billets dans le blog
    131
    Par défaut
    Salut.

    J'ai l'impression que tu essaies de faire des trucs bien complexes alors qu'il y a probablement plus simple.

    A la base, que cherches-tu à réaliser? A remplir un combobox multicolonnes? Si oui, oublie ce système de passer par des dictionnaires et tout le tintoin.

    Utilise AddItem. il paraît que c'est beaucoup plus lent (ça me fait doucement marrer, mais bon), mais c'est en tout cas beaucoup plus simple...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Bonjour
    en fait je cherchais à remplir une listbox selon les choix dans trois combobox.
    Exemple
    La feuille nommée BD à 10 colonnes renseignées
    les lignes sont renseignées par un formulaire de saisie.
    Sur ce formulaire il y a trois trois combobox un listbox
    puis des champs textbox correspondant aux valeurs renvoyées lors d'une sélection d'une ligne sur le listbox.

    le combobox1 fait référence à la colonne 4 de la feuille BD les valeurs sont au format date.
    la liste de choix dans ce premier combo doit être l'année repris dans la colonne 4.
    le combo 2 fait référence à la colonne 2 (ville) la liste doit être triée par ordre croissant sans doublon.
    Idem pour le combox3 qui fait référence à la colonne3 (manifestion).

    le problème est que je n'arrive pas à trier par ordre croissant des dates qui s'affiche dans le listbox col4.

    et lorsque je sélectionne une ligne dans le listebox les valeurs renvoyées dans les textbox correspondants ne sont pas les bonnes.

    Voilà j'avance doucement
    j'ai repris un formulaire de ajout,modification, suppression réalisé par https://www.developpez.net/forums/u6...ontierjacques/

    bonne journée

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 951
    Points
    55 951
    Billets dans le blog
    131
    Par défaut
    Tu marques la discussion comme résolue... mais tu me dis que "ça ne marche pas"...

    Au final, résolu ou pas résolu?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

Discussions similaires

  1. Erreur d'exécution "13" incompatibilité de type
    Par zenico64 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 14/12/2010, 10h45
  2. Erreur d'exécution 13 : incompatibilité de type
    Par Ptikir dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/04/2009, 15h59
  3. erreur d'exécution 13 incompatibilité de type
    Par glamgeek dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/03/2009, 12h03
  4. "erreur d'exécution 13 : incompatibilité de type"
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 19/07/2007, 15h47
  5. erreur d'exécution 13, incompatibilité de type
    Par PHPdudimanche dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/06/2007, 15h20

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