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'automation : l'objet invoqué s'est déconnecté de ses clients - sur variable date [XL-2007]


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
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut erreur d'automation : l'objet invoqué s'est déconnecté de ses clients - sur variable date
    Bonjour tout le monde,

    J'ai ce code qui me génère l'erreur suivante :
    erreur d'automation : l'objet invoqué s'est déconnecté de ses clients

    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
    140
    141
    142
    143
    144
    145
    146
    147
    Sub rempljourn()
     
    option explicit
    dim dater as date
    dim nom as string
    dim nom1 as string
    dim fin as integer
    dim fin1 as integer
    dim sem as integer
    dim ann as integer
    dim jr as integer
    dim num as integer
    Dim num1 As Integer
    dim num2 as integer
    dim num3 as integer
    Dim a As Integer
    Dim b As Integer
    Dim c As Integer
     
    If menu.Listjourn.ListIndex = -1 Then
        MsgBox "VEUILLEZ SELECTIONNER UNE JOURNEE !! ", vbCritical
        Exit Sub
    End If
     
    dater1 = Format(menu.Listjourn.List(menu.Listjourn.ListIndex, 0), "dd/mm/yyyy")
     
    ann = 2019 'Year(dater1)  'année de la date
    nom = "trav" & ann 'nom de la feuille à remplir
    nom1 = "cycl" & ann 'nom de la feuille cycle
    fin = Sheets(nom).Range("c3").Value + 7 'ligne a saisir
    fin1 = Sheets(nom).Range("c3").Value + 6 'numero ligne fin de saisi horaire
    If fin1 = 6 Then fin1 = 7
    'sem = Semaine(dater1) 'numero de semaine
    'jr = Weekday(dater1, vbMonday) 'numero jour de la semaine
     
    Load saisjourn
     
      With saisjourn.listsais.ColumnHeaders
            .Clear
            .Add , , "NUM AGENT"
            .Add , , "AGENT"
            .Add , , "HEURE DEBUT"
            .Add , , "HEURE FIN"
            .Add , , "PAUSE DEBUT"
            .Add , , "PAUSE FIN"
            .Add , , "HEURES TRAVAIL"
            .Add , , "HEURES SUP"
            .Add , , "NUM LIGN"
            .Add , , "NUM SEMAINE"
            .Add , , "COMMENTAIRES"
        End With
     
        For a = 5 To 102
            num = Sheets("listagent").Range("a" & a).Value  'numero agent
            If Sheets("listagent").Range("b" & a).Value = "" Then Exit For
            For b = 7 To fin1                                                               'recherche si la journée est déjà saisi
                If num = Sheets(nom).Range("a" & a).Value Then                              'recherche l'agent dans la liste des journées saisi de l'année sélectionnée
                    If dater1 = Sheets(nom).Range("c" & b).Value Then    'recherche si la date correspond à la journée saisi
                        With saisjourn.listsais
                            .ListItems.Add Sheets(nom).Range("a" & b).Value                                                        'numero agent
                            With .ListItems(saisjourn.listsais.ListItems.Count)
                                .ListSubItems.Add = Sheets(nom).Range("b" & b).Value      '1 nom prenom agent
                                .ListSubItems.Add = Sheets(nom).Range("d" & b).Value    '2 heure debut travail
                                .ListSubItems.Add = Sheets(nom).Range("e" & b).Value    '3 heure fin travail
                                .ListSubItems.Add = Sheets(nom).Range("f" & b).Value    '4 heure debut pause
                                .ListSubItems.Add = Sheets(nom).Range("g" & b).Value    '5 heure fin pause
                                .ListSubItems.Add = Sheets(nom).Range("i" & b).Value    '6 nombre heures travaillees
                                .ListSubItems.Add = Sheets(nom).Range("j" & b).Value    '7 nombre heures sup
                                .ListSubItems.Add = b                                   '8 numero de ligne a modifier
                                .ListSubItems.Add = sem                                 '9 numero de la semaine
                                .ListSubItems.Add = Sheets(nom).Range("l" & b).Value   '10 commentaires
                            End With
                        End With
     
                   Else
                       If a = fin1 Then 'saisi depuis liste agent
                           For c = 7 To 104 'recherche du type de semaine dans le cycle
                                If num = Sheets(nom1).Range("a" & c).Value Then 'décide nouvelle ligne si journée pas trouver
                                    num2 = Right(Sheets(nom2).Range(Cells(c, sem + 2)).Value, 1) 'numero de la semaine de 1 a 4
                                    num3 = (num2 * 4) - 2 'détermine la colonne de départ pour récupérer donnée
     
                                    With saisjourn.listsais
                                        .ListItems.Add Sheets("listagent").Range("a" & a).Value   'numero agent
                                        With .ListItems(saisjourn.listsais.ListItems.Count)
                                            .ListSubItems.Add = Sheets("listagent").Range("b").Value & " " & Sheets("listagent").Range("c" & a).Value '1 nom prenom agent
                                            .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3)).Value        '2 heure debut travail
                                            .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 1)).Value    '3 heure fin travail
                                            .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 2)).Value   '4 heure debut pause
                                            .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 3)).Value    '5 heure fin pause
                                            .ListSubItems.Add = (saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(3).Text - saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(2).Text) - (saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(5).Text - saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(4).Text) '6 saisi nombre heures travaillees
                                            .ListSubItems.Add = 0 '7 saisi heure sup
                                            .ListSubItems.Add = fin '8 saisi sur nouvelle ligne
                                        End With
                                    End With
                                 fin = fin + 1
                                End If
                            Next c
     
                        End If
                    End If
                End If
            Next b
        Next a
     
        saisjourn.Label7.Caption = "HEURE DEBUT"
        saisjourn.Label8.Caption = "HEURE FIN"
        saisjourn.Label9.Caption = "PAUSE DEBUT"
        saisjourn.Label10.Caption = "PAUSE FIN"
        saisjourn.Label11.Caption = "NOMBRE HEURES"
        saisjourn.Label12.Caption = "NOMBRE HEURES SUP"
        saisjourn.infodate.Caption = Format(dater1, "dd-mmm-yyyy")
     
    saisjourn.listsais.View = lvwReport
     
    saisjourn.Show vbModal
     
     
    fin1 = fin1 + 1
    b = 0
    For a = fin1 To fin
     
        Sheets(nom).Range("b" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(1).Text
        Sheets(nom).Range("c" & a).Value = saisjourn.infodate.Caption
        Sheets(nom).Range("d" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(2).Text
        Sheets(nom).Range("e" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(3).Text
        Sheets(nom).Range("f" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(4).Text
        Sheets(nom).Range("g" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(5).Text
        Sheets(nom).Range("h" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(6).Text
        Sheets(nom).Range("i" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(7).Text
        Sheets(nom).Range("k" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(10).Text
        b = b + 1
    Next a
     
    If saisjourn.Optoui.Value = True Then
        For b = 7 To 372
            dater = Day(Sheets(nom).Range("o" & b).Value) & "-" & Month(Sheets(nom).Range("o" & b).Value) & "-" & Year(Sheets(nom).Range("o" & b).Value)
            If dater = saisjourn.infodate.Caption = dater Then
                Sheets(nom).Range("p" & b).Value = "saisi"
                Exit For
            End If
        Next b
    End If
     
     
    Unload saisjourn
     
    End Sub
    Mon problème vient de la variable "dater" initialiser au format date.
    Ces essais ci dessous m'ont donné que le format de l'élément récupérer était bien une date et même si je change le format le problème n'est pas résolu.
    Avez vous une suggestion ?
    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
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
     
    option explicit
    dim dater as date
    dim nom as string
    dim nom1 as string
    dim fin as integer
    dim fin1 as integer
    dim sem as integer
    dim ann as integer
    dim jr as integer
    dim num as integer
    Dim num1 As Integer
    dim num2 as integer
    dim num3 as integer
    Dim a As Integer
    Dim b As Integer
    Dim c As Integer
     
    Sub rempljourn()
     
    If menu.Listjourn.ListIndex = -1 Then
        MsgBox "VEUILLEZ SELECTIONNER UNE JOURNEE !! ", vbCritical
        Exit Sub
    End If
     
    MsgBox menu.Listjourn.List(menu.Listjourn.ListIndex, 0)
    MsgBox IsDate(menu.Listjourn.List(menu.Listjourn.ListIndex, 0)) & " - " & Format(menu.Listjourn.List(menu.Listjourn.ListIndex, 0), "dd/mm/yyyy")
    'MsgBox dater1
    dater1 = Format(menu.Listjourn.List(menu.Listjourn.ListIndex, 0), "dd/mm/yyyy")
     
    ann = 2019 'Year(dater1)  'année de la date
    nom = "trav" & ann 'nom de la feuille à remplir
    nom1 = "cycl" & ann 'nom de la feuille cycle
    fin = Sheets(nom).Range("c3").Value + 7 'ligne a saisir
    fin1 = Sheets(nom).Range("c3").Value + 6 'numero ligne fin de saisi horaire
    If fin1 = 6 Then fin1 = 7
    'sem = Semaine(dater1) 'numero de semaine
    'jr = Weekday(dater1, vbMonday) 'numero jour de la semaine
     
    Load saisjourn
     
      '  With saisjourn.listsais.ColumnHeaders
     '       .Clear
    '        .Add , , "NUM AGENT"
    '        .Add , , "AGENT"
    '        .Add , , "HEURE DEBUT"
    '        .Add , , "HEURE FIN"
    '        .Add , , "PAUSE DEBUT"
    '        .Add , , "PAUSE FIN"
    '        .Add , , "HEURES TRAVAIL"
    '        .Add , , "HEURES SUP"
    '        .Add , , "NUM LIGN"
    '        .Add , , "NUM SEMAINE"
    '        .Add , , "COMMENTAIRES"
    '    End With
     
    '    For a = 5 To 102
    '        num = Sheets("listagent").Range("a" & a).Value  'numero agent
    '        If Sheets("listagent").Range("b" & a).Value = "" Then Exit For
    '        For b = 7 To fin1                                                               'recherche si la journée est déjà saisi
    '            If num = Sheets(nom).Range("a" & a).Value Then                              'recherche l'agent dans la liste des journées saisi de l'année sélectionnée
    '                If dater1 = Sheets(nom).Range("c" & b).Value Then    'recherche si la date correspond à la journée saisi
    '                    With saisjourn.listsais
    '                        .ListItems.Add Sheets(nom).Range("a" & b).Value                                                        'numero agent
    '                        With .ListItems(saisjourn.listsais.ListItems.Count)
    '                            .ListSubItems.Add = Sheets(nom).Range("b" & b).Value      '1 nom prenom agent
    '                            .ListSubItems.Add = Sheets(nom).Range("d" & b).Value    '2 heure debut travail
    '                            .ListSubItems.Add = Sheets(nom).Range("e" & b).Value    '3 heure fin travail
    '                            .ListSubItems.Add = Sheets(nom).Range("f" & b).Value    '4 heure debut pause
    '                            .ListSubItems.Add = Sheets(nom).Range("g" & b).Value    '5 heure fin pause
    '                            .ListSubItems.Add = Sheets(nom).Range("i" & b).Value    '6 nombre heures travaillees
    '                            .ListSubItems.Add = Sheets(nom).Range("j" & b).Value    '7 nombre heures sup
    '                            .ListSubItems.Add = b                                   '8 numero de ligne a modifier
    '                            .ListSubItems.Add = sem                                 '9 numero de la semaine
    '                            .ListSubItems.Add = Sheets(nom).Range("l" & b).Value   '10 commentaires
    '                        End With
    '                    End With
     
     '               Else
     '                   If a = fin1 Then 'saisi depuis liste agent
     '                       For c = 7 To 104 'recherche du type de semaine dans le cycle
     '                           If num = Sheets(nom1).Range("a" & c).Value Then 'décide nouvelle ligne si journée pas trouver
     '                               num2 = Right(Sheets(nom2).Range(Cells(c, sem + 2)).Value, 1) 'numero de la semaine de 1 a 4
     '                               num3 = (num2 * 4) - 2 'détermine la colonne de départ pour récupérer donnée
     
    '                                With saisjourn.listsais
    '                                    .ListItems.Add Sheets("listagent").Range("a" & a).Value   'numero agent
    '                                    With .ListItems(saisjourn.listsais.ListItems.Count)
    '                                        .ListSubItems.Add = Sheets("listagent").Range("b").Value & " " & Sheets("listagent").Range("c" & a).Value '1 nom prenom agent
    '                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3)).Value        '2 heure debut travail
    '                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 1)).Value    '3 heure fin travail
    '                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 2)).Value   '4 heure debut pause
    '                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 3)).Value    '5 heure fin pause
    '                                        .ListSubItems.Add = (saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(3).Text - saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(2).Text) - (saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(5).Text - saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(4).Text) '6 saisi nombre heures travaillees
    '                                        .ListSubItems.Add = 0 '7 saisi heure sup
    '                                        .ListSubItems.Add = fin '8 saisi sur nouvelle ligne
    '                                    End With
    '                                End With
     '                               fin = fin + 1
     '                           End If
     '                       Next c
     
      '                  End If
      '              End If
      '          End If
       '     Next b
       ' Next a
     
      '  saisjourn.Label7.Caption = "HEURE DEBUT"
      '  saisjourn.Label8.Caption = "HEURE FIN"
      '  saisjourn.Label9.Caption = "PAUSE DEBUT"
      '  saisjourn.Label10.Caption = "PAUSE FIN"
      '  saisjourn.Label11.Caption = "NOMBRE HEURES"
      '  saisjourn.Label12.Caption = "NOMBRE HEURES SUP"
      '  saisjourn.infodate.Caption = Format(dater1, "dd-mmm-yyyy")
     
    'saisjourn.listsais.View = lvwReport
     
    saisjourn.Show vbModal
     
     
    'fin1 = fin1 + 1
    'b = 0
    'For a = fin1 To fin
     
    '    Sheets(nom).Range("b" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(1).Text
    '    Sheets(nom).Range("c" & a).Value = saisjourn.infodate.Caption
    '    Sheets(nom).Range("d" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(2).Text
    '    Sheets(nom).Range("e" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(3).Text
    '    Sheets(nom).Range("f" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(4).Text
    '    Sheets(nom).Range("g" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(5).Text
    '    Sheets(nom).Range("h" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(6).Text
    '    Sheets(nom).Range("i" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(7).Text
    '    Sheets(nom).Range("k" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(10).Text
    '    b = b + 1
    'Next a
     
    'If saisjourn.Optoui.Value = True Then
    '    For b = 7 To 372
    '        dater = Day(Sheets(nom).Range("o" & b).Value) & "-" & Month(Sheets(nom).Range("o" & b).Value) & "-" & Year(Sheets(nom).Range("o" & b).Value)
    '        If dater = saisjourn.infodate.Caption = dater Then
    '            Sheets(nom).Range("p" & b).Value = "saisi"
    '            Exit For
    '        End If
    '    Next b
    'End If
     
     
    Unload saisjourn
     
    End Sub

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Format() te retourne une chaine (qu'excel peut convertir en date mais peut-être avec des ratées).
    Pour avoir le numéro de série de la date je mettrais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dater1 = clng(menu.Listjourn.List(menu.Listjourn.ListIndex, 0))
    eric

  3. #3
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut C SE QUE JE PENSAIS
    Merci pour ton aide eriiic,

    C'est bien se que je pensais, après correction, le message d'érreur est : "erreur d'éxécution 13 : incompatibilité de type"

    En bref ma donnée n'est pas une date alors que le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox IsDate(menu.Listjourn.List(menu.Listjourn.ListIndex, 0)) & " - " & Format(menu.Listjourn.List(menu.Listjourn.ListIndex, 0), "dd/mm/yyyy")
    me dit que oui c'est une date ????????

    Qu'ai je oublié dans ma récupération de date ?
    Ci dessous le début du code modifié donnant cette erreur


    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
    Sub rempljourn()
     
    If menu.Listjourn.ListIndex = -1 Then
        MsgBox "VEUILLEZ SELECTIONNER UNE JOURNEE !! ", vbCritical
        Exit Sub
    End If
     
    MsgBox menu.Listjourn.List(menu.Listjourn.ListIndex, 0)
    MsgBox IsDate(menu.Listjourn.List(menu.Listjourn.ListIndex, 0)) & " - " & Format(menu.Listjourn.List(menu.Listjourn.ListIndex, 0), "dd/mm/yyyy")
    dater1 = CLng(menu.Listjourn.List(menu.Listjourn.ListIndex, 0))
     
     
    'MsgBox dater1
     
     
    ann = 2019 'Year(dater1)  'année de la date
    nom = "trav" & ann 'nom de la feuille à remplir
    nom1 = "cycl" & ann 'nom de la feuille cycle
    fin = Sheets(nom).Range("c3").Value + 7 'ligne a saisir
    fin1 = Sheets(nom).Range("c3").Value + 6 'numero ligne fin de saisi horaire
    If fin1 = 6 Then fin1 = 7
    'sem = Semaine(dater1) 'numero de semaine
    'jr = Weekday(dater1, vbMonday) 'numero jour de la semaine

  4. #4
    Inactif  

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Rebonjour,

    Désolé pour le télescopage. Ma réponse est partie avant que la réponse de eriiic ne soit arrivée. Je ne suis plus sûr que ma réponse ne soit très à point, à la suite des "nouveaux développements". Mais bon, si jamais elle peut servir à quelqu'un d'autre, elle ne sera pas complètement perdue


    ------------------------------ La réponse originale ------------------------------------------------
    Bonjour,

    Désolé de ne pas pouvoir tester ton code, parce que mon Office à 64 bits n'est pas compatible avec ce ListView-là que je n'ai même plus sur ma machine. (J'ai bien un Listview .net, mais cela ne règle pas le problème.)

    En gros, ce genre de message vient pour un programme VB-VBA, ou même VB.net qui perd sa liaison avec objet OLE (incluant les applications pilotées à distance comme un objet Word dans une macro Excel). Cela peut arriver quand l'application sur laquelle on compte est arrêtée prématurément ou, je pense, quand l'application "pilotée" existe en plus d'une instance et que la macro se branche à la mauvaise instance.

    Tu pourrais aussi regarder si tu n'as pas une macro ailleurs qui fermerait un programme trop vite pour celui-là.

    Cela me surprendrait que cela soit cela, parce que, en principe, cela devrait être un autre message d'horreur; mais tu ne risques à rien à vérifier si tes références à Microsoft Forms 2 Object Library, OLE Automation, Visual Basic For Applications et Microsoft Office xx Objects Library sont bien cochées et que ton ListView est bien un ListView (VB6-VBA) et non un ListView "VB.net"

    Sinon, tu vas devoir espérer qu'une bonne âme avec un Office à 32 bits, "tombe" sur ta question et essaie ton code.

  5. #5
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut
    bonsoir clementmarcotte,

    Non effectivement la listview n'est pas à l'origine de mon problème !!!!
    Quand je modifie le type variable de dater1 de en mon userform s'ouvre

    Le problème vient de cette variable et du format de la donnée qu'on rentre

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dater1 = cdate(clng(menu.Listjourn.List(menu.Listjourn.ListIndex, 0)))
    ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut RESOLU
    C'était bien un problème lié au format de la valeur.

    Ta réponse m'a permis de trouver la réponse.
    Ta solution ne fonctionne toujours pas mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dater1 = cdate(menu.Listjourn.List(menu.Listjourn.ListIndex, 0))
    fonctionne très bien.
    Le format date est reconnu suite à la conversion

    merci pour ton aide eriiic

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

Discussions similaires

  1. [XL-2007] Erreur Automation : L'objet invoqué s'est déconnecté de ses clients
    Par nanousik dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 06/11/2019, 14h22
  2. [XL-2010] Erreur Automation L'objet invoqué s'est déconnecté de ses clients
    Par forum2015 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 11/08/2014, 22h12
  3. Réponses: 8
    Dernier message: 07/03/2014, 11h58
  4. Erreur Automation:l'Objet invoqué s'est déconnecté de ses clients
    Par alfadz dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 09/12/2011, 16h17
  5. [XL-2002] erreur automation. L'objet évoqué s'est déconnecté de ses clients
    Par marcelisa2 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/01/2011, 10h04

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