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 13: incompatibilité de type


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut Erreur 13: incompatibilité de type
    Bonjour,

    J'ai aujourd'hui un problème avec un fichier mais je ne réussie pas à trouver d'ou vient le problème. Avez-vous une idée ? Le code est celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim lig As Double
    Dim col As Double
    
    For Each cell In Workbooks("Fichier1.xls").Sheets("Statistiques").Range("C2:DO1465")
    If cell.Value <> "" Then
    lig = cell.Row
    col = cell.Column
    Workbooks("Fichier Commun.xls").Sheets("Statistiques").Cells(lig, col).Value = Workbooks("Fichier Commun.xls").Sheets("Statistiques").Cells(lig, col).Value + Workbooks("Fichier1.xls").Sheets("Statistiques").Cells(lig, col).Value
    End If
    Next cell

    La ligne surligné est celle en gras et l'erreur est une incompatibilité de type (erreur13).

    Merci à tous ceux qui pourront m'aider car j'en ai vraiment besoin Bonne journée a tous.

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    bon déjà, simplement, as-tu déjà vérifier que la formule additionne bien tjs des nombres (pas de texte ou de nombres formaté texte?)?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Ce sont bien des nombres et ca bloque toujours ...

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    aussi, les variables lig et col devraient être déclarées comme long et non comme double.
    ça peut éviter des ennuis

    essaye un peu ça pour voir
    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
    Sub plussoyons()
     
    Dim Lig As Long, Col As Long
    Dim wCommun As Workbook, wFichier1 As Workbook
    Dim CA As Double
    Dim CB As Double
     
    Set wCommun = Workbooks("Fichier Commun.xls")
    Set wFichier1 = Workbooks("Fichier1.xls")
     
    For Each cell In wFichier1.Sheets("Statistiques").Range("C2O1465")
        If cell.Value <> "" Then
            Lig = cell.Row
            Col = cell.Column
            CA = wCommun.Sheets("Statistiques").Cells(Lig, Col).Value
            CB = wFichier1.Sheets("Statistiques").Cells(Lig, Col).Value
            wCommun.Sheets("Statistiques").Cells(Lig, Col).Value = CA + CB
        End If
    Next cell
     
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Maintenant j'ai une erreur 13 sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CB = wFichier1.Sheets("Statistiques").Cells(Lig, Col).Value
    Dans tous les cas merci de prendre de ton temps pour m'aider

  6. #6
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    et bien si c'est une erreur type 13
    vérifie bien la cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wFichier1.Sheets("Statistiques").Cells(Lig, Col).Value
    (avec donc la valeur réelle de lig et col à ce moment là)
    c'est probablement une valeur autre que numérique

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Belle astuce...Désolé pour le dérangement disproportionné, il me suffisait de penser a voir quelle cellule était concerné... BOnne journée à toi et merci !

  8. #8
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    ben de rien,

    ce n'est vraiment une astuce, c'est juste que ton code est plus lisible comme cela
    et c'est vrai que cela permet aussi de mieux débugguer le bouzin!



    bonne continuation

  9. #9
    Membre averti
    Femme Profil pro
    Gestionnaire
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Par défaut
    Bonjour,

    j'ai un problème de type "incompatibilité" et je n'arrive pas à trouver la solution. pourriez vous l'aider svp? c'est la syntaxe en rouge

    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
    Sub Edite_facture()
    'déclaration
    Dim deb
    Dim fin
    Dim i
    Dim Qte As Integer
    
    'affectation variables
    Sheets("PARAMETRES_FACTURES_QB02").Activate
    deb = Sheets("PARAMETRES_FACTURES_QB02").Range("Debut_facturation").Item(1).Value
    fin = Sheets("PARAMETRES_FACTURES_QB02").Range("Fin_facturation").Item(1).Value
    
    'Boucle sur i pour lancer la génération de facture
    For i = deb To fin
    Call Genere_facture(i)
    Next
    End Sub
    Sub Genere_facture(combinaison)
    Dim li_sol, col_sol
    Dim onglet
    
    'Préparation Nom onglet Facture
    'Principe : Facture avec numéro unique pour ne pas écraser ou refaire ce qui a été edité
    Facture_titulaire = CStr(Sheets("PARAMETRES_FACTURES_QB02").Range("Annee").Item(combinaison).Value) & _
    "-" & Sheets("PARAMETRES_FACTURES_QB02").Range("Num_facture").Item(combinaison).Value & _
    "-" & Left(CStr(Sheets("PARAMETRES_FACTURES_QB02").Range("QB?").Item(combinaison).Value), 4) & _
    "-" & Left(CStr(Sheets("PARAMETRES_FACTURES_QB02").Range("Nom_Usine").Item(combinaison).Value), 4) & _
    "-" & Left(CStr(Sheets("PARAMETRES_FACTURES_QB02").Range("Société_Titulaire").Item(combinaison).Value), 7)
    
    Fichier_facture = CStr(Sheets("PARAMETRES_FACTURES_QB02").Range("Annee").Item(combinaison).Value) & _
    "-" & Sheets("PARAMETRES_FACTURES_QB02").Range("Num_facture").Item(combinaison).Value & _
    "-" & Sheets("PARAMETRES_FACTURES_QB02").Range("QB?").Item(combinaison).Value & _
    "-" & CStr(Sheets("PARAMETRES_FACTURES_QB02").Range("Nom_Usine").Item(combinaison).Value) & _
    "-" & CStr(Sheets("PARAMETRES_FACTURES_QB02").Range("Société_Titulaire").Item(combinaison).Value)
        
    'Actualisation paramètres selon un audit à blanc
    
    If Sheets("PARAMETRES_FACTURES_QB02").Range("Type_facture") And Range("QB?").Item(combinaison).Value = "AUDIT_A_BLANC" Then
    'Création d''une copie de la trame de Facture
        Sheets("AUDIT_A_BLANC").Activate
        Sheets("AUDIT_A_BLANC").Copy After:=Sheets(Sheets.Count)
        Sheets("AUDIT_A_BLANC (2)").Name = Facture_titulaire

  10. #10
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Sheets("PARAMETRES_FACTURES_QB02").Range("Type_facture").Value="AUDIT_A_BLANC" And Range("QB?").Item(combinaison).Value = "AUDIT_A_BLANC" Then
    ca devrait le faire

  11. #11
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2021
    Messages : 2
    Par défaut Erreur 13 : Incompatibilité type
    Bonjour,

    Mon programme est un copier coller d'un autre fichier qui fonctionne à merveille. J'ai seulement changer le noms des variables pour le réadapter. Sinon c'est exactement la même chose. J'ai un msg d'erreur "incompatibilité type" dans ce nouveau programme. Initialement il fonctionnait très bien mais plus maintenant et je n'arrive pas à comprendre d'où provient l'erreur.
    J'ai regardé plusieurs fois mais je comprends toujours pas.

    A savoir que le programme utilise un fichier qui a été précédemment extrait de SAP.
    Pouvez-vous m'aider s'il vous plaît ? je perds patience et espoir ...:help:

    Voici mon programme (la ligne qui pose problème est la ligne 97) :

    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
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    Sub Calcul()
     
    Application.ScreenUpdating = False
     
    Dim i As Integer
    Dim PN As String
    Dim Col_PN As Integer
    Dim NB_OF As Integer
    Dim No_OF As String
    Dim p As Integer
    Dim Retard_J As Integer
    Dim Nb_Retard As Integer
    'On Error GoTo Err1
     
     
     
    'Efface les data précédentes
    Workbooks("Planification SS_MOD8.XLSM").Sheets("Data SAP").Activate
    Range("A2:BB300").Select
    Selection.Clear
     
     
    'Reconaissance des colonnes
    Dim No_Col_Order As Integer
    Dim No_Col_Material As Integer
    Dim No_Col_FinishDate As Integer
     
     
    Workbooks("WIP.XLS").Activate
    Sheets("WIP").Activate
     
    For i = 1 To 100
     
        If Cells(7, i) = "Order" Then
     
            No_Col_Order = i
     
        End If
     
     
        If Cells(7, i) = "Material" Then
     
            No_Col_Material = i
     
        End If
     
     
        If Cells(7, i) = "Basic fin." Then
     
            No_Col_FinishDate = i
     
        End If
     
    If No_Col_Order <> 0 And No_Col_Material <> 0 And No_Col_FinishDate <> 0 Then
     
    i = 101
    End If
     
     
    Next i
     
     
     
    'Mise en format des dates
    Windows("WIP.XLS").Activate
        Range("D9").Select
        ActiveCell.FormulaR1C1 = _
            "=IFERROR(VLOOKUP(RC[" & No_Col_FinishDate - 4 & "],'[Planification SS_MOD8.xlsm]Index'!C10:C11,2,0),"""")"
        Range("D9").Select
        Selection.AutoFill Destination:=Range("D9:D500")
        Range("D9:D500").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.NumberFormat = "m/d/yyyy"
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
     
     
     
     
    For i = 2 To 28
    Workbooks("Planification SS_MOD8.xlsm").Sheets("Index").Activate
     
        PN = Cells(i, 2)
        Col_PN = Cells(i, 4)
        NB_OF = Cells(i, 5)
     
     
                For p = 9 To 500
     
                Workbooks("WIP.XLS").Sheets("WIP").Activate
     
                    If Cells(p, No_Col_Material) = PN And Cells(p, No_Col_Material) <> "" Then
     
                    No_OF = Cells(p, No_Col_Order)
                    Retard_J = Cells(p, 4) - Date    ' <---------------- Ligne qui pose problème
     
                        Workbooks("Planification SS_MOD8.xlsm").Sheets("Data SAP").Activate
     
                        If Retard_J < 0 Then
     
                            Nb_Retard = Nb_Retard + 1
     
                        End If
     
     
                        Cells(2 + NB_OF, Col_PN + 1) = Retard_J
                        Cells(2 + NB_OF, Col_PN) = No_OF
                        NB_OF = Sheets("Index").Cells(i, 5)
     
     
                    End If
     
                Next p
     
    Workbooks("Planification SS_MOD8.xlsm").Sheets("Index").Activate
    Cells(i, 7) = Nb_Retard
    Nb_Retard = 0
     
    Next i
     
     
    'Efface précédent
    Workbooks("Planification SS_MOD8.xlsm").Sheets("Planification").Activate
    Range("C14:W14").Select
    Range("C21:W21").Select
     
     
     
     
    Workbooks("WIP.XLS").Close False
     
    Workbooks("Planification SS_MOD8.xlsm").Sheets("Planification").Activate
     
    'Exit Sub
    'Err1:
    ' MsgBox Err.Number & vbLf & Err.Description
    End Sub

  12. #12
    Membre chevronné
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Par défaut
    Salut, alors pour commencer tu as a dispo a l'édition du message, une balise spéciale pour insérer du code (#)

    En suite dans ta feuille "Data SAP" si tu n'as pas que des dates a la colonne 4 (donc D) ça ne marchera pas.

  13. #13
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2021
    Messages : 2
    Par défaut
    Salut Christian,

    Merci beaucoup d'avoir pris le temps de me répondre et pour le tips pour insérer un code

    Finalement j'ai réussi à résoudre le problème il ya quelques minutes et l'erreur provenait bien de cette colonne D.

    Merci encore

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

Discussions similaires

  1. [A-07] Erreur n°13 : Incompatibilité de type
    Par Leimi dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/03/2009, 11h15
  2. Erreur d'incompatibilité de types
    Par étoile de mer dans le forum Débuter
    Réponses: 27
    Dernier message: 01/06/2008, 17h14
  3. DLookup, Erreur d'incompatibilité de type (13)
    Par athos7776 dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/08/2007, 17h25
  4. Erreur 13 : incompatibilité de type
    Par Donatelli dans le forum Access
    Réponses: 1
    Dernier message: 03/01/2007, 12h19
  5. [VBA-A] ADO - Erreur 13 Incompatibilité de Type
    Par db30 dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/04/2006, 14h30

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