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 [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    BTS SIO - SLAM
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : BTS SIO - SLAM

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Par défaut Erreur d'exécution 13 incompatibilité de type
    Bonjour,

    Tout est dans le titre, lorsque j'exécute ma macro depuis mon UserForm1 j'ai cette erreur : erreur d'exécution 13 incompatibilité de type qui apparaît.
    Mais là où je ne comprends pas, c'est que cette erreur intervient seulement de la lettre L à Q.

    Car j'utilise deux textbox pour filtrer deux colonnes "E" et "F" de la feuille1 (repère et désignation) :

    • Dans la colonne "E" (repère) je n'ai que des chiffres allant de 1 à 104.

    • Dans la colonne "F" (désignation) je n'ai que des lettres allant de A à DC.


    Puis lorsque je click sur ma ComboBox1 (DropButtonClick), j'effectue un tri des doublons + tri alphabétique. Et l'erreur d’exécution 13 apparaît à ce moment là, lors du DropButtonClick !!!!

    J'espère être clair dans mes propos, si besoin je peux transmettre le fichier.

    Merci d'avance pour votre aide

    PS: Je vous ai mis la ligne d'erreur en rouge dans 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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    Private Sub ComboBox1_Change()
    
    'Filtre selon le choix de la comboBox1
    With Worksheets(1)
    .Range("F1:F500").AutoFilter Field:=6, Criteria1:=ComboBox1.Value
    End With
    
    End Sub
    
    Private Sub ComboBox1_DropButtonClick()
    
    'Retire les doublons de la comboBox1
    Dim f As Worksheet
    Dim c As Range
        Set f = Sheets("Reperes")
        Set dico = CreateObject("Scripting.Dictionary")
        For Each c In f.Range("f3:f" & f.[f65000].End(xlUp).Row)
            If Rows(c.Row).Hidden = False Then
                dico(c.Value) = IIf(dico.exists(c.Value), dico(c.Value) & "*" & c.Offset(, 1), c.Offset(, 1))
            End If
        Next c
        Me.ComboBox1.List = dico.keys
    
    'Tri le contenu du ComboBox par ordre alphabétique
        With Me.ComboBox1
            For i = 0 To .ListCount - 1
                For j = 0 To .ListCount - 1
                    If .List(i) < .List(j) Then
                        strTemp = .List(i)
                        .List(i) = .List(j)
                        .List(j) = strTemp
                    End If
                Next j
            Next i
        End With
    End Sub
    Private Sub CommandButton1_Click()
    
    'Filtre colonne repere
    With Worksheets(1)
    .Range("E1:E500").AutoFilter Field:=5, Criteria1:=TextBoxRep.Value, Operator:=xlOr, _
    Criteria2:="=*" & TextBoxRep.Value & "*"
    End With
    
    'Filtre colonne designation
    With Worksheets(1)
    .Range("F1:F500").AutoFilter Field:=6, Criteria1:=TextBoxDesg.Value, Operator:=xlOr, _
    Criteria2:="=*" & TextBoxDesg.Value & "*"
    End With
    
    'Rempli la combobox suivant le filtre
    Set Rng = [_FilterDataBase]
      Dim Tmp(): ReDim Tmp(1 To [_FilterDataBase].Resize(, 1).SpecialCells(xlCellTypeVisible).Count)
       For Each c In [_FilterDataBase].Resize(, 1).Offset(1).SpecialCells(xlCellTypeVisible)
         i = i + 1: Tmp(i) = c.Row - Rng.Row + 1
       Next c
       Me.ComboBox1.List = Application.Index(Rng, Application.Transpose(Tmp), Application.Transpose(Evaluate("Row(6:" & Rng.Columns.Count & ")")))
    
    'L'index 0 correspond à la première donnée contenue dans le ComboBox
    'ComboBox1.ListIndex = 0
    
    End Sub
    Private Sub CommandButtonRaz_Click()
    
    'Vide les textbox Reperes et Designation
    TextBoxRep.Value = ""
    TextBoxDesg.Value = ""
    ComboBox1.Clear
    
    'Filtre_raz Macro
    With Worksheets(1)
    .AutoFilterMode = False
    Columns("A:N").Select
    Selection.AutoFilter
    End With
    
    End Sub
    Private Sub Frame_agents_Click()
    
    'Creer autant de checkbox que de cellules non vides colonne C
    nb_agents = Application.WorksheetFunction.CountA(Feuil1.Range("$C:$C").AutoFilter(Field:=6, Criteria1:=ComboBox1.Value))
    For i = 1 To nb_agents
    Set ajoutagent = Frame_agents.Controls.Add("forms.checkbox.1", Name:="ajoutagent" & i) ' partie la plus importante
    Frame_agents.Controls("ajoutagent" & i).Top = 15 * i
    Frame_agents.Controls("ajoutagent" & i).Caption = Feuil1.Range("c" & i)
    Next i
    If nb_agents > 8 Then
         Frame_agents.Height = 135
         Frame_agents.Width = 155
         Frame_agents.ScrollBars = fmScrollBarsVertical
         Frame_agents.ScrollHeight = (16 * nb_agents) + 20
         Else
         Frame_agents.Height = 135
         Frame_agents.Width = 150
         Frame_agents.ScrollBars = fmScrollBarsNone
    End If
    
    End Sub
    Private Sub UserForm_Initialize()
    
    With Worksheets(1)
    .AutoFilterMode = False
    Columns("A:N").Select
    Selection.AutoFilter
    ComboBox1.Clear
    End With
    
    End Sub

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Essaye tout simplement de remplacer ton test IIf par un simple If, comme ceci :

    remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dico(c.Value) = IIf(dico.exists(c.Value), dico(c.Value) & "*" & c.Offset(, 1), c.Offset(, 1))
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If dico.exists(c.Value) Then 
        dico(c.Value) = dico(c.Value) & "*" & c.Offset(, 1)
    Else
        dico(c.Value) = c.Offset(, 1)
    End If

  3. #3
    Membre averti
    Homme Profil pro
    BTS SIO - SLAM
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : BTS SIO - SLAM

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Par défaut
    Bonjour Pijaku,

    Merci pour ton aide. J'ai essayé le nouveau code et j'ai la même erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If dico.exists(c.Value) Then 
    dico(c.Value) = dico(c.Value) & "*" & c.Offset(, 1)
    Else
    dico(c.Value) = c.Offset(, 1)
    End If
    Lorsque je laisse le curseur sur c.Offset(, 1) en mode Debug, on m'affiche c.Offset(, 1) = Erreur 2023

    Une idée ?!!

  4. #4
    Expert éminent


    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
    Par défaut
    Bonsoir,


    et il y as quoi dans la cellule correspondante ?

  5. #5
    Membre averti
    Homme Profil pro
    BTS SIO - SLAM
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : BTS SIO - SLAM

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Par défaut
    En fait en colonne E il y a le chiffre 12 dans la cellule. Et en colonne F il y a la lettre L dans la cellule.

  6. #6
    Expert éminent


    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
    Par défaut
    vérifie quand même si tu est bien sur la cellule que tu imagine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If dico.exists(c.Value) Then 
     Debug.print c.parent.Name & "!" & c.Address  ' voir affichage dans fenêtre exécution CTRL+G
    dico(c.Value) = dico(c.Value) & "*" & c.Offset(, 1)
    Else
    dico(c.Value) = c.Offset(, 1)
    End If

+ 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