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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Par défaut ERREUR 13 incompatibilité de type
    Bonjour
    Dans un fichier (trop volumineux pour être mis en ligne) j'organise le suiviv d'un parc automobile.
    Cette opération s'effectue en plusieurs temps.
    Dans un premier temps je rentre les données au moyen d'un formulaire simple.
    Ensuite pour effectuer ce suivi je recherche les données précédentes afin de pouvoir les compléter.
    J'ai plusieurs champs date à saisir (champs qui ne seront pas tous mis à jour en même temps et donc vont rester vides)
    je rencontre une difficulté que je n'arrive pas à résoudre une erreur 13 incompatibilité de type sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          BASEINTERVENTIONS.Cells(K, J + 9) = CDate(ListView1.ListItems(I).ListSubItems(J).Text)
    je joins un fichier vous donne la structure de la feuille concernée
    et ci dessous le code complet

    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
     
     
    Private Sub UserForm_initialize()
     Dim derlig As Long
    derlig = BASEINTERVENTIONS.[A65000].End(xlUp).Row
     
        With Me.ListView1
        .View = 3
        .Gridlines = True
               With .ColumnHeaders
                   .Add , , "NUMERO DEMANDE", 80
                   .Add , , "TRAVAUX DEMANDES", 150
                   .Add , , "AUTO 24", 50
                   .Add , , "GARAGISTE", 50
                   .Add , , "DATE DEBUT TRAVAUX", 60
                   .Add , , "TRAVAUX REALISES", 30
                   .Add , , "DATE RESTITUTION", 60
                   .Add , , "VALIDATION FACTURE", 30
                   .Add , , "COMMENTAIRES", 200
                   .Add , , "FACTURE ", 80
     
               End With
     
     
        For I = 2 To derlig
     
          .ListItems.Add , , BASEINTERVENTIONS.Cells(I, 5).Value
          .ListItems(.ListItems.Count).ListSubItems.Add , , BASEINTERVENTIONS.Cells(I, 10).Value
          .ListItems(.ListItems.Count).ListSubItems.Add , , BASEINTERVENTIONS.Cells(I, 11).Value
          .ListItems(.ListItems.Count).ListSubItems.Add , , BASEINTERVENTIONS.Cells(I, 12).Value
          .ListItems(.ListItems.Count).ListSubItems.Add , , Format(BASEINTERVENTIONS.Cells(I, 13).Value, "dd/mm/yyyy")
          .ListItems(.ListItems.Count).ListSubItems.Add , , BASEINTERVENTIONS.Cells(I, 14).Value
          .ListItems(.ListItems.Count).ListSubItems.Add , , Format(BASEINTERVENTIONS.Cells(I, 15).Value, "dd/mm/yyyy")
          .ListItems(.ListItems.Count).ListSubItems.Add , , BASEINTERVENTIONS.Cells(I, 16).Value
          .ListItems(.ListItems.Count).ListSubItems.Add , , BASEINTERVENTIONS.Cells(I, 17).Value
          .ListItems(.ListItems.Count).ListSubItems.Add , , BASEINTERVENTIONS.Cells(I, 18).Value
     
        Next I
     
    End With
     
    End Sub
     
    Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
     
     
    End Sub
    Private Sub ListView1_click()
      Me.TextBox1.Text = ListView1.SelectedItem.Text
        Me.TextBox2.Text = ListView1.SelectedItem.ListSubItems(1).Text
        Me.TextBox3.Text = ListView1.SelectedItem.ListSubItems(2).Text
        Me.ComboBox1.Text = ListView1.SelectedItem.ListSubItems(3).Text
        Me.TextBox4.Value = ListView1.SelectedItem.ListSubItems(4).Text
        Me.ComboBox2.Text = ListView1.SelectedItem.ListSubItems(5).Text
        Me.ComboBox3.Text = ListView1.SelectedItem.ListSubItems(7).Text
        Me.TextBox5.Value = ListView1.SelectedItem.ListSubItems(6).Text
        Me.TextBox6.Text = ListView1.SelectedItem.ListSubItems(8).Text
        Me.TextBox7.Text = ListView1.SelectedItem.ListSubItems(9).Text
     
    End Sub
    Private Sub CommandButton1_Click()
        ListView1.SelectedItem.Text = Me.TextBox1.Text
        ListView1.SelectedItem.ListSubItems(1).Text = Me.TextBox2.Text
        ListView1.SelectedItem.ListSubItems(2).Text = Me.TextBox3.Text
        ListView1.SelectedItem.ListSubItems(3).Text = Me.ComboBox1.Text
        ListView1.SelectedItem.ListSubItems(4).Text = CDate(Me.TextBox4.Value)
        ListView1.SelectedItem.ListSubItems(5).Text = Me.ComboBox2.Text
        ListView1.SelectedItem.ListSubItems(6).Text = CDate(Me.TextBox5.Value)
        ListView1.SelectedItem.ListSubItems(7).Text = Me.ComboBox3.Text
        ListView1.SelectedItem.ListSubItems(8).Text = Me.TextBox6.Text
        ListView1.SelectedItem.ListSubItems(9).Text = Me.TextBox7.Text
     
    Dim I As Integer
    Dim J As Byte
    Dim K As Integer
        K = 2
        For I = 1 To ListView1.ListItems.Count
        BASEINTERVENTIONS.Cells(K, 5) = ListView1.ListItems(I).Text
        For J = 1 To ListView1.ColumnHeaders.Count - 1
        If J = 4 Or J = 6 Then
            BASEINTERVENTIONS.Cells(K, J + 9) = CDate(ListView1.ListItems(I).ListSubItems(J).Text)
        Else
            BASEINTERVENTIONS.Cells(K, J + 9) = ListView1.ListItems(I).ListSubItems(J).Text
        End If
    Next J
        BASEINTERVENTIONS.Cells(K, 19).FormulaR1C1 = "=RC[-4]-RC[-6]"
        BASEINTERVENTIONS.Cells(K, 20).FormulaR1C1 = "=RC[-7]-RC[-11]"
        K = K + 1
        Next I
     
     
    End Sub
    j'ai bien cherché une solution sur le forum et d'autres sites mais je n'arrive pas à trouver de solution

    si quelqu'un pouvait m'aider à débrouiller ce bug j'en serais ravi


    ps:j'ai un petit doute sur le fait que certaines lignes avec dates soient vides mais je ne sais pas si cela constitue un début de sulotion
    merci d'avance pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Par défaut
    Bonjour,

    Effectivement en faisant on a bien la même erreur donc le fait que tes dates soient vides posent apparemment problème. Rajoute devant un test pour vérifier si elle ne le sont et dis nous si cela résoud ton problème.

  3. #3
    Membre confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Par défaut
    c'est justement là où je bloque sur la manière et l'endroit où formuler cette nouvelle condition

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,

    peut-être comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    .......
    If J = 4 Or J = 6 Then
      If ListView1.ListItems(I).ListSubItems(J).Text <> "" Then
        BASEINTERVENTIONS.Cells(K, J + 9) = CDate(ListView1.ListItems(I).ListSubItems(J).Text)
      Else
        BASEINTERVENTIONS.Cells(K, J + 9) = ""
      End If
    Else
      BASEINTERVENTIONS.Cells(K, J + 9) = ListView1.ListItems(I).ListSubItems(J).Text
    End If
    .......
    mais sans connaitre la finalité.....

    Bon courage
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

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