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 75 récurrente [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut Erreur 75 récurrente
    Bonjour,

    Je suis en train de mettre en place un fichier de gestion de données.
    Si j'arrive à peu près à m'en sortir avec les codes VBA, bien que cela ne soit pas parfait, j'ai un code erreur récurrent 75.
    Il s'agit du bouton "Check in control" de la feuille "Check In Exxon", lié à Useform1, dont l'ouverture est commandée par la macro 14 dans le module 6 comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro14()
     
    UserForm1.Show
     
    End Sub
    Je n'ai pas tout le temps le problème, uniquement de temps en temps.

    J'ai lu sur le forum déjà quelques cas comme celui là mais je préfère donner le fichier en entier, peut être que mon cas est différent.

    Si quelqu'un pouvais m'éclairer...

    Merci et bonne journée,
    Fichiers attachés Fichiers attachés

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    J'ai lu sur le forum déjà quelques cas comme celui là mais je préfère donner le fichier en entier
    sans voir ton code ? -->> non ...
    Lis donc ma signature ...
    Ainsi que ceci : https://www.developpez.net/forums/d8...s-discussions/

    Ce n'est certes pas la seule ligne de code disant :
    qui est la cause de ton erreur.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Rebonjour,

    Désolé je viens de m'inscrire sur ce forum (et c'est mon premier)et du coup je viens de lire l'avertissement sur la transmission de fichier. C'est d'ailleurs logique je n'ai pas réfléchi avant de le faire.

    Du coup ci dessous mon code.

    Dans une feuille qui reçoit des informations d'une autre feuille j'ai un bouton qui contrôle l'ouverture d'un formulaire UserForm1.
    Ce formulaire est ouvert après clic comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro14()
     
    UserForm1.Show
     
    End Sub
    Ce clic ouvre donc Useform1 qui donne sur un formulaire proposant de cliquer sur d'autres boutons.
    Le code de UserForm1 ci dessous.

    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
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    Sub CommandButton1_Click()
    UserForm3.Show
     
    End Sub
     
    Sub CommandButton2_Click()
     
    Set Cr = Sheets("Escale report")
     
    If MsgBox("Is first PAX arrived?", vbYesNo, "Wait for first PAX...") = vbYes Then
     
    Dim Today1
    Today1 = Time
    Me.Caption = Today1
    Cr.Range("C20").Value = Today1
     
     
    End If
     
    MsgBox "First PAX is arrived."
     
    Unload Me
     
     
     
    End Sub
     
    Sub CommandButton3_Click()
    Set Cd = Sheets("Check in Exxon")
    Set Cr = Sheets("Escale report")
    Set Ce = Sheets("Airwaybill")
    Set Cf = Sheets("Pax manifest")
     
     
    If MsgBox("Check-in is closed?", vbYesNo, "Closing of Check-in") = vbYes Then
     
    Dim Today2
    Today2 = Time
    Me.Caption = Today2
    Cr.Range("C21").Value = Today2
     
    With Sheets("Check in Exxon")
    .Range("G8").Copy Destination:=Sheets("Escale report").Range("B8")
    .Range("G9").Copy Destination:=Sheets("Escale report").Range("B10")
    .Range("J5").Copy Destination:=Sheets("Escale report").Range("F8")
    .Range("J9").Copy Destination:=Sheets("Escale report").Range("D8")
    .Range("C6").Copy Destination:=Sheets("Escale report").Range("H8")
    .Range("C5").Copy Destination:=Sheets("Escale report").Range("H6")
    .Range("G8").Copy Destination:=Sheets("Escale report").Range("B8")
    .Range("G9").Copy Destination:=Sheets("Escale report").Range("B10")
    .Select
    .Range("A16:F63").Copy Destination:=Sheets("Pax manifest").Range("A10:F58")
     
    End With
     
    Cd.Range("E61").Copy
    Cr.Range("C13").PasteSpecial Paste:=xlPasteValues
    Cd.Range("I62").Copy
    Cr.Range("B13").PasteSpecial Paste:=xlPasteValues
    Cd.Range("E62").Copy
    Cr.Range("B14").PasteSpecial Paste:=xlPasteValues
    Cd.Range("E61").Copy
    Cr.Range("C14").PasteSpecial Paste:=xlPasteValues
    Ce.Range("E32").Copy
    Cr.Range("B15").PasteSpecial Paste:=xlPasteValues
    Ce.Range("F32").Copy
    Cr.Range("C15").PasteSpecial Paste:=xlPasteValues
    Cf.Range("H62").Copy
    Cr.Range("B13").PasteSpecial Paste:=xlPasteValues
    Cf.Range("E60").Copy
    Cr.Range("C13").PasteSpecial Paste:=xlPasteValues
    Cf.Range("E62").Copy
    Cr.Range("B14").PasteSpecial Paste:=xlPasteValues
    Cf.Range("E63").Copy
    Cr.Range("C14").PasteSpecial Paste:=xlPasteValues
    Ce.Range("E32").Copy
    Cr.Range("B15").PasteSpecial Paste:=xlPasteValues
    Ce.Range("F32").Copy
    Cr.Range("C15").PasteSpecial Paste:=xlPasteValues
     
    Dim x As Variant
    Dim L As String
    x = Sheets("flight following").Range("C5").Value
    L = Sheets("data").Range("B1:B65536").Find(x, lookat:=xlWhole).Row
    y = Sheets("weight sheet").Range("C37").Value
    z = Sheets("pax manifest").Range("E60").Value
    t = Sheets("pax manifest").Range("H62").Value
    u = Sheets("airwaybill").Range("F32").Value
     
    If Sheets("data").Cells(L, "B").Value = x Then
     
    Sheets("Data").Cells(L, "AN") = y
    Sheets("Data").Cells(L, "AM") = z
    Sheets("Data").Cells(L, "AL") = t
    Sheets("data").Cells(L, "AO") = u
     
     
     
    End If
     
     
     
    End If
     
     
     
    MsgBox "Check-In is closed!"
     
    Unload Me
     
    End Sub
     
    Private Sub CommandButton4_Click()
     
    If MsgBox("Are you sure to print the Documents?", vbYesNo, "Demande de confirmation") = vbYes Then
     
    With Sheets("Pax manifest").PageSetup
        .PrintArea = "A1:H68"
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    Sheets("Pax manifest").PrintOut Copies:=6
     
    With Sheets("Airwaybill").PageSetup
        .Orientation = xlLandscape
        .PrintArea = "A1:Q33"
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
     
    End With
    Sheets("Airwaybill").PrintOut Copies:=5
     
    With Sheets("Tag sheet Exxon").PageSetup
        .PrintArea = "A1:L56"
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    Sheets("Tag sheet Exxon").PrintOut
     
    With Sheets("Weight Sheet").PageSetup
        .Orientation = xlLandscape
        .PrintArea = "A1:Q55"
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    Sheets("Weight Sheet").PrintOut Copies:=2
     
    End If
     
    Unload Me
     
    End Sub
     
    Private Sub CommandButton5_Click()
     
    If MsgBox("Are you sure to print the report?", vbYesNo, "Demande de confirmation") = vbYes Then
     
    With Sheets("Escale Report").PageSetup
        .PrintArea = "A1:H37"
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    End If
    Sheets("Escale report").PrintOut
     
    Unload Me
    End Sub
     
    Private Sub CommandButton6_Click()
     
    If MsgBox("Are you sure to close this flight? This will erase data.", vbYesNo, "Demande de confirmation") = vbYes Then
    With Sheets("Check in Exxon")
     
    .Range("C5:C12") = ""
    .Range("G5:G9") = ""
    .Range("L3") = ""
    .Range("B16:L63") = ""
    .Range("M16:M63") = ""
    .Range("J5:J9") = ""
     
    End With
    With Sheets("Pax manifest")
    .Range("A10:F57") = ""
    End With
     
    With Sheets("Airwaybill")
    .Range("A10:Q31") = ""
    End With
     
    With Sheets("Escale report")
    .Range("B8") = ""
    .Range("B10") = ""
    .Range("D8") = ""
    .Range("D10") = ""
    .Range("F8") = ""
    .Range("F10") = ""
    .Range("H6") = ""
    .Range("H8") = ""
    .Range("H10") = ""
    .Range("B13:C15") = ""
    .Range("C18:C21") = ""
    End With
     
    End If
     
    Unload Me
     
    End Sub
    Quand je suis en train de travailler sur le code ou de rajouter des fonctions dans celui ci le message "Erreur 75" apparaît et fait planter Excel.
    Dans le registre des tâches j'ai vu que la fermeture d'Excel était liée au VBE6.dll. J'ai donc réparé Excel mais ceci n'a pas changé grand chose.

    Merci pour le retour.

    Bonne journée,

  4. #4
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Bon, définitivement je devrais lire toutes les règles avant de poster.

    Ci dessous le code comme demandé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro14()
     
    UserForm1.Show
     
    End Sub
    Ce clic ouvre donc Useform1 qui donne sur un formulaire proposant de cliquer sur d'autres boutons.
    Le code de UserForm1 ci dessous.

    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
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    Sub CommandButton1_Click()
    UserForm3.Show
     
    End Sub
     
    Sub CommandButton2_Click()
     
    Set Cr = Sheets("Escale report")
     
    If MsgBox("Is first PAX arrived?", vbYesNo, "Wait for first PAX...") = vbYes Then
     
    Dim Today1
    Today1 = Time
    Me.Caption = Today1
    Cr.Range("C20").Value = Today1
     
     
    End If
     
    MsgBox "First PAX is arrived."
     
    Unload Me
     
     
     
    End Sub
     
    Sub CommandButton3_Click()
    Set Cd = Sheets("Check in Exxon")
    Set Cr = Sheets("Escale report")
    Set Ce = Sheets("Airwaybill")
    Set Cf = Sheets("Pax manifest")
     
     
    If MsgBox("Check-in is closed?", vbYesNo, "Closing of Check-in") = vbYes Then
     
    Dim Today2
    Today2 = Time
    Me.Caption = Today2
    Cr.Range("C21").Value = Today2
     
    With Sheets("Check in Exxon")
    .Range("G8").Copy Destination:=Sheets("Escale report").Range("B8")
    .Range("G9").Copy Destination:=Sheets("Escale report").Range("B10")
    .Range("J5").Copy Destination:=Sheets("Escale report").Range("F8")
    .Range("J9").Copy Destination:=Sheets("Escale report").Range("D8")
    .Range("C6").Copy Destination:=Sheets("Escale report").Range("H8")
    .Range("C5").Copy Destination:=Sheets("Escale report").Range("H6")
    .Range("G8").Copy Destination:=Sheets("Escale report").Range("B8")
    .Range("G9").Copy Destination:=Sheets("Escale report").Range("B10")
    .Select
    .Range("A16:F63").Copy Destination:=Sheets("Pax manifest").Range("A10:F58")
     
    End With
     
    Cd.Range("E61").Copy
    Cr.Range("C13").PasteSpecial Paste:=xlPasteValues
    Cd.Range("I62").Copy
    Cr.Range("B13").PasteSpecial Paste:=xlPasteValues
    Cd.Range("E62").Copy
    Cr.Range("B14").PasteSpecial Paste:=xlPasteValues
    Cd.Range("E61").Copy
    Cr.Range("C14").PasteSpecial Paste:=xlPasteValues
    Ce.Range("E32").Copy
    Cr.Range("B15").PasteSpecial Paste:=xlPasteValues
    Ce.Range("F32").Copy
    Cr.Range("C15").PasteSpecial Paste:=xlPasteValues
    Cf.Range("H62").Copy
    Cr.Range("B13").PasteSpecial Paste:=xlPasteValues
    Cf.Range("E60").Copy
    Cr.Range("C13").PasteSpecial Paste:=xlPasteValues
    Cf.Range("E62").Copy
    Cr.Range("B14").PasteSpecial Paste:=xlPasteValues
    Cf.Range("E63").Copy
    Cr.Range("C14").PasteSpecial Paste:=xlPasteValues
    Ce.Range("E32").Copy
    Cr.Range("B15").PasteSpecial Paste:=xlPasteValues
    Ce.Range("F32").Copy
    Cr.Range("C15").PasteSpecial Paste:=xlPasteValues
     
    Dim x As Variant
    Dim L As String
    x = Sheets("flight following").Range("C5").Value
    L = Sheets("data").Range("B1:B65536").Find(x, lookat:=xlWhole).Row
    y = Sheets("weight sheet").Range("C37").Value
    z = Sheets("pax manifest").Range("E60").Value
    t = Sheets("pax manifest").Range("H62").Value
    u = Sheets("airwaybill").Range("F32").Value
     
    If Sheets("data").Cells(L, "B").Value = x Then
     
    Sheets("Data").Cells(L, "AN") = y
    Sheets("Data").Cells(L, "AM") = z
    Sheets("Data").Cells(L, "AL") = t
    Sheets("data").Cells(L, "AO") = u
     
     
     
    End If
     
     
     
    End If
     
     
     
    MsgBox "Check-In is closed!"
     
    Unload Me
     
    End Sub
     
    Private Sub CommandButton4_Click()
     
    If MsgBox("Are you sure to print the Documents?", vbYesNo, "Demande de confirmation") = vbYes Then
     
    With Sheets("Pax manifest").PageSetup
    .PrintArea = "A1:H68"
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    End With
    Sheets("Pax manifest").PrintOut Copies:=6
     
    With Sheets("Airwaybill").PageSetup
    .Orientation = xlLandscape
    .PrintArea = "A1:Q33"
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
     
    End With
    Sheets("Airwaybill").PrintOut Copies:=5
     
    With Sheets("Tag sheet Exxon").PageSetup
    .PrintArea = "A1:L56"
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    End With
    Sheets("Tag sheet Exxon").PrintOut
     
    With Sheets("Weight Sheet").PageSetup
    .Orientation = xlLandscape
    .PrintArea = "A1:Q55"
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    End With
    Sheets("Weight Sheet").PrintOut Copies:=2
     
    End If
     
    Unload Me
     
    End Sub
     
    Private Sub CommandButton5_Click()
     
    If MsgBox("Are you sure to print the report?", vbYesNo, "Demande de confirmation") = vbYes Then
     
    With Sheets("Escale Report").PageSetup
    .PrintArea = "A1:H37"
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    End With
    End If
    Sheets("Escale report").PrintOut
     
    Unload Me
    End Sub
     
    Private Sub CommandButton6_Click()
     
    If MsgBox("Are you sure to close this flight? This will erase data.", vbYesNo, "Demande de confirmation") = vbYes Then
    With Sheets("Check in Exxon")
     
    .Range("C5:C12") = ""
    .Range("G5:G9") = ""
    .Range("L3") = ""
    .Range("B16:L63") = ""
    .Range("M16:M63") = ""
    .Range("J5:J9") = ""
     
    End With
    With Sheets("Pax manifest")
    .Range("A10:F57") = ""
    End With
     
    With Sheets("Airwaybill")
    .Range("A10:Q31") = ""
    End With
     
    With Sheets("Escale report")
    .Range("B8") = ""
    .Range("B10") = ""
    .Range("D8") = ""
    .Range("D10") = ""
    .Range("F8") = ""
    .Range("F10") = ""
    .Range("H6") = ""
    .Range("H8") = ""
    .Range("H10") = ""
    .Range("B13:C15") = ""
    .Range("C18:C21") = ""
    End With
     
    End If
     
    Unload Me
     
    End Sub
    Encore désolé et merci.

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Ton code non présenté entre balises codes est pénible à lire.

    Quand je suis en train de travailler sur le code ou de rajouter des fonctions dans celui ci le message "Erreur 75" apparaît et fait planter Excel
    Voilà donc une indication essentielle. L'erreur n'est pas une erreur d'exécution, mais présente en création de ton code (dans l'éditeur lui-même).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  6. #6
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Recu merci, ce qui veut dire que le problème vient de l'éditeur VBA lui même?
    Ce qui voudrait dire qu'il n'y a rien à faire du coup?
    Pour préciser ce que je disais il est possible que cela se produise quand je lance la macro lors d'un débug.
    Celle ci se passe bien la plupart du temps mais de temps en temps cela indique ce message.

    Merci pour ton retour.

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    1) l'indentation du code le rend lisible et n'est pas un luxe
    J'ai du indenté le tien moi-même et le revoilà "présentable" et non "tournisgêne" :
    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
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    Sub CommandButton1_Click()
      UserForm3.Show
    End Sub
     
    Sub CommandButton2_Click()
      Set Cr = Sheets("Escale report")
      If MsgBox("Is first PAX arrived?", vbYesNo, "Wait for first PAX...") = vbYes Then
        Dim Today1
        Today1 = Time
        Me.Caption = Today1
        Cr.Range("C20").Value = Today1
      End If
      MsgBox "First PAX is arrived."
      Unload Me
    End Sub
     
    Sub CommandButton3_Click()
      Set Cd = Sheets("Check in Exxon")
      Set Cr = Sheets("Escale report")
      Set Ce = Sheets("Airwaybill")
      Set Cf = Sheets("Pax manifest")
      If MsgBox("Check-in is closed?", vbYesNo, "Closing of Check-in") = vbYes Then
        Dim Today2
        Today2 = Time
        Me.Caption = Today2
        Cr.Range("C21").Value = Today2
        With Sheets("Check in Exxon")
          .Range("G8").Copy Destination:=Sheets("Escale report").Range("B8")
          .Range("G9").Copy Destination:=Sheets("Escale report").Range("B10")
          .Range("J5").Copy Destination:=Sheets("Escale report").Range("F8")
          .Range("J9").Copy Destination:=Sheets("Escale report").Range("D8")
          .Range("C6").Copy Destination:=Sheets("Escale report").Range("H8")
          .Range("C5").Copy Destination:=Sheets("Escale report").Range("H6")
          .Range("G8").Copy Destination:=Sheets("Escale report").Range("B8")
          .Range("G9").Copy Destination:=Sheets("Escale report").Range("B10")
          .Select
          .Range("A16:F63").Copy Destination:=Sheets("Pax manifest").Range("A10:F58")
        End With
        Cd.Range("E61").Copy
        Cr.Range("C13").PasteSpecial Paste:=xlPasteValues
        Cd.Range("I62").Copy
        Cr.Range("B13").PasteSpecial Paste:=xlPasteValues
        Cd.Range("E62").Copy
        Cr.Range("B14").PasteSpecial Paste:=xlPasteValues
        Cd.Range("E61").Copy
        Cr.Range("C14").PasteSpecial Paste:=xlPasteValues
        Ce.Range("E32").Copy
        Cr.Range("B15").PasteSpecial Paste:=xlPasteValues
        Ce.Range("F32").Copy
        Cr.Range("C15").PasteSpecial Paste:=xlPasteValues
        Cf.Range("H62").Copy
        Cr.Range("B13").PasteSpecial Paste:=xlPasteValues
        Cf.Range("E60").Copy
        Cr.Range("C13").PasteSpecial Paste:=xlPasteValues
        Cf.Range("E62").Copy
        Cr.Range("B14").PasteSpecial Paste:=xlPasteValues
        Cf.Range("E63").Copy
        Cr.Range("C14").PasteSpecial Paste:=xlPasteValues
        Ce.Range("E32").Copy
        Cr.Range("B15").PasteSpecial Paste:=xlPasteValues
        Ce.Range("F32").Copy
        Cr.Range("C15").PasteSpecial Paste:=xlPasteValues
        Dim x As Variant
        Dim L As String
        x = Sheets("flight following").Range("C5").Value
        L = Sheets("data").Range("B1:B65536").Find(x, lookat:=xlWhole).Row
        y = Sheets("weight sheet").Range("C37").Value
        Z = Sheets("pax manifest").Range("E60").Value
        t = Sheets("pax manifest").Range("H62").Value
        u = Sheets("airwaybill").Range("F32").Value
        If Sheets("data").Cells(L, "B").Value = x Then
          Sheets("Data").Cells(L, "AN") = y
          Sheets("Data").Cells(L, "AM") = Z
          Sheets("Data").Cells(L, "AL") = t
          Sheets("data").Cells(L, "AO") = u
        End If
      End If
      MsgBox "Check-In is closed!"
      Unload Me
    End Sub
     
    Private Sub CommandButton4_Click()
      If MsgBox("Are you sure to print the Documents?", vbYesNo, "Demande de confirmation") = vbYes Then
        With Sheets("Pax manifest").PageSetup
          .PrintArea = "A1:H68"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Sheets("Pax manifest").PrintOut Copies:=6
        With Sheets("Airwaybill").PageSetup
          .Orientation = xlLandscape
          .PrintArea = "A1:Q33"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Sheets("Airwaybill").PrintOut Copies:=5
        With Sheets("Tag sheet Exxon").PageSetup
          .PrintArea = "A1:L56"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Sheets("Tag sheet Exxon").PrintOut
        With Sheets("Weight Sheet").PageSetup
          .Orientation = xlLandscape
          .PrintArea = "A1:Q55"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Sheets("Weight Sheet").PrintOut Copies:=2
      End If
      Unload Me
    End Sub
     
    Private Sub CommandButton5_Click()
      If MsgBox("Are you sure to print the report?", vbYesNo, "Demande de confirmation") = vbYes Then
        With Sheets("Escale Report").PageSetup
          .PrintArea = "A1:H37"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
      End If
      Sheets("Escale report").PrintOut
      Unload Me
    End Sub
     
    Private Sub CommandButton6_Click()
      If MsgBox("Are you sure to close this flight? This will erase data.", vbYesNo, "Demande de confirmation") = vbYes Then
        With Sheets("Check in Exxon")
          .Range("C5:C12") = ""
          .Range("G5:G9") = ""
          .Range("L3") = ""
          .Range("B16:L63") = ""
          .Range("M16:M63") = ""
          .Range("J5:J9") = ""
        End With
        With Sheets("Pax manifest")
          .Range("A10:F57") = ""
        End With
        With Sheets("Airwaybill")
          .Range("A10:Q31") = ""
        End With
        With Sheets("Escale report")
          .Range("B8") = ""
          .Range("B10") = ""
          .Range("D8") = ""
          .Range("D10") = ""
          .Range("F8") = ""
          .Range("F10") = ""
          .Range("H6") = ""
          .Range("H8") = ""
          .Range("H10") = ""
          .Range("B13:C15") = ""
          .Range("C18:C21") = ""
        End With
      End If
      Unload Me
    End Sub

    2) La précision est ici de la plus grande importance.
    Confirmes-tu OUI ou NON recevoir ce message d'erreur également en mode édition ? Car si oui -->> problème avant même de parler d'exécution. Et inutile alors de chercher une autre cause éventuelle ailleurs. Il faut d'ABORD identifier A CE NIVEAU !

    3) il y aurait beaucoup à dire sur les maladresses et autres petites choses que je vois dans ton code, mais je ne veux en aucun cas me focaliser sur tout ce qui ne serait pas la cause directe d'une erreur en MODE EDITION du code !

    4) je ne vois hélas que deux possibilités d'erreur en mode EDITION :
    --a) une application VBA/Excel corrompue (sait-on jamais ?, mais je n'y crois pas)
    --b) une trop grande torture de la mise en oeuvre de l'intellisense, qui s'y perd. Une des causes de cet égarement pourrait (?) être que tout un tas de variables objet que tu utilises n'ont pas été déclarées et typées.

    5)
    ce qui veut dire que le problème vient de l'éditeur VBA lui même
    Euh ... Pas forcément de l'éditeur en soi, mais générées lors de son utilisation du fait de causes non encore cernées. Ce n'est pas du tout la même chose.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  8. #8
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Merci Unparia,

    J'avais mis le code juste avant que tu ne me répondes, c'est pour cela que tu as du le faire toi même, cf juste au dessus de tes réponses.
    Pour répondre à ton point 2), le plus précis que je puisse dire est ceci:
    - Cela m'arrive de débuger le code quand je travaille dessus et donc en mode édition.
    - Je ne peux pas te confirmer que cela n'arrive pas en utilisation mais à ce jour je n'ai pas le souvenir.

    La dernière action que j'ai tenté est de supprimer la macro qui gérait l'ouverture du formulaire et la remplacer par celle que je t'ai donné. C'est la même mais que j'ai déplacé.

    Si au final mon code est mal organisé, peut être que je devrais tout refaire après quelques cours de base.
    Cela ne me réjouis pas mais bon...je ne veux pas vous donner des mals de tête à le lire...

    Merci

  9. #9
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    J'avais mis le code juste avant que tu ne me répondes, c'est pour cela que tu as du le faire toi même
    Non. Ce que j'ai fait moi-même, c'est l'INDENTATION (regarde la différence )
    Cela m'arrive de débuger le code quand je travaille dessus et donc en mode édition.
    je vois mal ce qu'est le débogage en mode édition (sans exécution).
    Si erreurs sans être en mode exécution : -->> nécessité de ne pas aller au delà de ce stade en hypothèses (bis repetita)
    Si au final mon code est mal organisé, peut être que je devrais tout refaire après quelques cours de base
    me relire : il s'agit là d'un autre aspect encore, qui s'éloigne du sujet en soi (sauf peut-être en ce qui concerne ma remarque relative à des variables objets non déclarées et qui pourrait compromettre le travail de l'intellisense).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  10. #10
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Effectivement je vois la différence entre les deux...

    Merci en tout cas, je vais retravailler tout ça pour mettre de l'ordre ça ne fera pas de mal.

    Bonne soirée,

  11. #11
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Tiens
    voilà déjà ce que devient ton code après un petit ménage et une petite réorganisation à main levée :
    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
    Private Cd As Worksheet, Cr As Worksheet, Ce As Worksheet, Cf As Worksheet
    Private Sub Worksheet_Activate()
      Set Cd = Worksheets("Check in Exxon")
      Set Cr = Worksheets("Escale report")
      Set Ce = Worksheets("Airwaybill")
      Set Cf = Worksheets("Pax manifest")
    End Sub
     
    Sub CommandButton1_Click()
      UserForm3.Show
    End Sub
     
    Sub CommandButton2_Click()
      If MsgBox("Is first PAX arrived?", vbYesNo, "Wait for first PAX...") = vbYes Then
        Dim Today1 As Date
        Today1 = Time
        Me.Caption = Today1
        Cr.Range("C20").Value = Today1
      End If
      MsgBox "First PAX is arrived."
      Unload Me
    End Sub
     
    Sub CommandButton3_Click()
      Dim x As Variant, L As Long
      If MsgBox("Check-in is closed?", vbYesNo, "Closing of Check-in") = vbYes Then
        Dim Today2
        Today2 = Time
        Me.Caption = Today2
        Cr.Range("C21").Value = Today2
        With Cd
          .Range("G8").Copy Destination:=Cr.Range("B8")
          .Range("G9").Copy Destination:=Cr.Range("B10")
          .Range("J5").Copy Destination:=Cr.Range("F8")
          .Range("J9").Copy Destination:=Cr.Range("D8")
          .Range("C6").Copy Destination:=Cr.Range("H8")
          .Range("C5").Copy Destination:=Cr.Range("H6")
          .Range("G8").Copy Destination:=Cr.Range("B8")
          .Range("G9").Copy Destination:=Cr.Range("B10")
          '.Select
          .Range("A16:F63").Copy Destination:=Cf.Range("A10:F58")
          .Range("E61").Copy
          Cr.Range("C13").PasteSpecial Paste:=xlPasteValues
          .Range("I62").Copy
          Cr.Range("B13").PasteSpecial Paste:=xlPasteValues
          .Range("E62").Copy
          Cr.Range("B14").PasteSpecial Paste:=xlPasteValues
          .Range("E61").Copy
          Cr.Range("C14").PasteSpecial Paste:=xlPasteValues
        End With
        With Cr
          Ce.Range("E32").Copy
          .Range("B15").PasteSpecial Paste:=xlPasteValues
          Ce.Range("F32").Copy
          .Range("C15").PasteSpecial Paste:=xlPasteValues
          Cf.Range("H62").Copy
          .Range("B13").PasteSpecial Paste:=xlPasteValues
          Cf.Range("E60").Copy
          .Range("C13").PasteSpecial Paste:=xlPasteValues
          Cf.Range("E62").Copy
          .Range("B14").PasteSpecial Paste:=xlPasteValues
          Cf.Range("E63").Copy
          .Range("C14").PasteSpecial Paste:=xlPasteValues
          Ce.Range("E32").Copy
          .Range("B15").PasteSpecial Paste:=xlPasteValues
          Ce.Range("F32").Copy
          .Range("C15").PasteSpecial Paste:=xlPasteValues
        End With
        L = Sheets("data").Range("B1:B65536").Find(x, lookat:=xlWhole).Row
        With Worksheets("Data")
          If .Cells(L, "B").Value = Worksheets("flight following").Range("C5").Value Then
            .Cells(L, "AN") = Worksheets("weight sheet").Range("C37").Value
            .Cells(L, "AM") = Cf.Range("E60").Value
            .Cells(L, "AL") = Cf.Range("H62").Value
            .Cells(L, "AO") = Ce.Range("F32").Value
          End If
        End With
      End If
      MsgBox "Check-In is closed!"
      Unload Me
    End Sub
     
     
    Private Sub CommandButton4_Click()
      If MsgBox("Are you sure to print the Documents?", vbYesNo, "Demande de confirmation") = vbYes Then
        With Cf.PageSetup
          .PrintArea = "A1:H68"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Cf.PrintOut Copies:=6
        With Ce.PageSetup
          .Orientation = xlLandscape
          .PrintArea = "A1:Q33"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Ce.PrintOut Copies:=5
        With Worksheets("Tag sheet Exxon").PageSetup
          .PrintArea = "A1:L56"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Worksheets("Tag sheet Exxon").PrintOut
        With Worksheets("Weight Sheet").PageSetup
          .Orientation = xlLandscape
          .PrintArea = "A1:Q55"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Worksheets("Weight Sheet").PrintOut Copies:=2
      End If
      Unload Me
    End Sub
     
    Private Sub CommandButton5_Click()
      If MsgBox("Are you sure to print the report?", vbYesNo, "Demande de confirmation") = vbYes Then
        With Cr.PageSetup
          .PrintArea = "A1:H37"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
      End If
      Cr.PrintOut
      Unload Me
    End Sub
     
    Private Sub CommandButton6_Click()
      If MsgBox("Are you sure to close this flight? This will erase data.", vbYesNo, "Demande de confirmation") = vbYes Then
        With Cd
          Application.Union(.Range("C5:C12"), .Range("G5:G9"), .Range("L3"), .Range("B16:L63"), .Range("M16:M63"), .Range("J5:J9")).ClearContents
        End With
        Cf.Range("A10:F57") = ""
        Ce.Range("A10:Q31") = ""
        With Cr
          Application.Union(.Range("B8"), .Range("B10"), .Range("D8"), .Range("D10"), .Range("F8"), .Range("F10"), .Range("H6"), .Range("H8"), .Range("H10"), .Range("B13:C15"), .Range("C18:C21")).ClearContents
        End With
      End If
      Unload Me
    End Sub
    Attention : j'ai opéré à main levée et aurait pu avoir un "gros doigt" ici ou là (je ne crois pas, mais ...)
    Il y a probablement encore mieux à faire, mais voilà déjà cela.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  12. #12
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Sympa unparia merci.

    Avec ce que tu as modifié cela va peut être me donner l'occasion de mettre de l'ordre dans le reste. (il y a tu t'en doutes bien d'autres lignes de code).
    J'ai pas mal d'autres questions mais je vais essayer déjà de mettre bien en l'état avant d'avancer.
    A terme ce fichier récolte des données qu'il faut traiter. Sous Excel j'arrive à le faire mais en passant par VBA j'ai l'impression qu'il faut être encore plus organisé dans le code que dans les formules.

    Merci encore et bon week end.

  13. #13
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bien.
    Attention : si ton code se trouve sur un userform, la première partie est à mettre dans l'évènement UserForm_Activate (et non dans Worksheet_Activate).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  14. #14
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Bonsoir,

    Pour reprendre le fil de cette discussion, le problème initial qui était le sujet de cette discussion se reproduit lorsque l'opérateur clique sur le bouton qui appelle UserForm1. Ceci entraine le message d'erreur 75 et la fermeture d'Excel.

    Je ne comprend pas trop d'où ca vient car la plupart du temps le fichier fonctionne très bien, cela le fait juste de temps en temps sans que je trouve un point commun.

    Si cela dit quelque chose à quelqu'un...merci pour votre coup de main.

    Bonne soirée,

  15. #15
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Montre ici SEPAREMENT et en les identifiant :
    - le code (depuis sub jusqu'à en sub) par lequel tu demande l'ouverture du userform
    EN PRECISANT où est ce code
    - le code de tous les évènements du userform (les évènements seuls).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  16. #16
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour !

    C'est simple : une fois trouvée une manipulation déclenchant à coup sûr l'erreur,
    mettre un point d'arrêt dans le code sur la ligne ouvrant l'UserForm puis réitérer la manipulation fatale :
    le code s'arrêtant donc automatiquement sur le point d'arrêt, suivre la progression du code en mode pas à pas
    via la touche F8 pour découvrir d'où vient l'erreur; tout ceci étant expliqué dans un tutoriel disponible sur ce forum …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  17. #17
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Ci dessous le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro14()
     
    UserForm1.Show
     
    End Sub
    Ce code se situe dans le module 6
    La feuille qui contient le bouton qui commande l'ouverture est nommée "Check in Exxon".

    Le code qui est dans l'UserForm 1 est ci dessous. Un premier bouton appelle UserForm3 dont le code est joint à la suite (séparé):

    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
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    Sub CommandButton1_Click()
      UserForm3.Show
    End Sub
     
    Sub CommandButton2_Click()
      Set Cr = Sheets("Escale report")
      If MsgBox("Is first PAX arrived?", vbYesNo, "Wait for first PAX...") = vbYes Then
        Dim Today1
        Today1 = Time
        Me.Caption = Today1
        Cr.Range("C20").Value = Today1
      End If
      MsgBox "First PAX is arrived."
      Unload Me
    End Sub
     
    Sub CommandButton3_Click()
      Set Cd = Sheets("Check in Exxon")
      Set Cr = Sheets("Escale report")
      Set Ce = Sheets("Airwaybill")
      Set Cf = Sheets("Pax manifest")
      If MsgBox("Check-in is closed?", vbYesNo, "Closing of Check-in") = vbYes Then
        Dim Today2
        Today2 = Time
        Me.Caption = Today2
        Cr.Range("C21").Value = Today2
        With Sheets("Check in Exxon")
          .Range("G8").Copy Destination:=Sheets("Escale report").Range("B8")
          .Range("G9").Copy Destination:=Sheets("Escale report").Range("B10")
          .Range("J5").Copy Destination:=Sheets("Escale report").Range("F8")
          .Range("J9").Copy Destination:=Sheets("Escale report").Range("D8")
          .Range("C6").Copy Destination:=Sheets("Escale report").Range("H8")
          .Range("C5").Copy Destination:=Sheets("Escale report").Range("H6")
          .Range("G8").Copy Destination:=Sheets("Escale report").Range("B8")
          .Range("G9").Copy Destination:=Sheets("Escale report").Range("B10")
          .Select
          .Range("A16:F63").Copy Destination:=Sheets("Pax manifest").Range("A10:F58")
        End With
        Cd.Range("E61").Copy
        Cr.Range("C13").PasteSpecial Paste:=xlPasteValues
        Cd.Range("I62").Copy
        Cr.Range("B13").PasteSpecial Paste:=xlPasteValues
        Cd.Range("E62").Copy
        Cr.Range("B14").PasteSpecial Paste:=xlPasteValues
        Cd.Range("E61").Copy
        Cr.Range("C14").PasteSpecial Paste:=xlPasteValues
        Ce.Range("E32").Copy
        Cr.Range("B15").PasteSpecial Paste:=xlPasteValues
        Ce.Range("F32").Copy
        Cr.Range("C15").PasteSpecial Paste:=xlPasteValues
        Cf.Range("H62").Copy
        Cr.Range("B13").PasteSpecial Paste:=xlPasteValues
        Cf.Range("E60").Copy
        Cr.Range("C13").PasteSpecial Paste:=xlPasteValues
        Cf.Range("E62").Copy
        Cr.Range("B14").PasteSpecial Paste:=xlPasteValues
        Cf.Range("E63").Copy
        Cr.Range("C14").PasteSpecial Paste:=xlPasteValues
        Ce.Range("E32").Copy
        Cr.Range("B15").PasteSpecial Paste:=xlPasteValues
        Ce.Range("F32").Copy
        Cr.Range("C15").PasteSpecial Paste:=xlPasteValues
        Dim x As Variant
        Dim L As String
        x = Sheets("flight following").Range("C5").Value
        L = Sheets("data").Range("B1:B65536").Find(x, lookat:=xlWhole).Row
        y = Sheets("weight sheet").Range("C37").Value
        Z = Sheets("pax manifest").Range("E60").Value
        t = Sheets("pax manifest").Range("H62").Value
        u = Sheets("airwaybill").Range("F32").Value
        If Sheets("data").Cells(L, "B").Value = x Then
          Sheets("Data").Cells(L, "AN") = y
          Sheets("Data").Cells(L, "AM") = Z
          Sheets("Data").Cells(L, "AL") = t
          Sheets("data").Cells(L, "AO") = u
        End If
      End If
      MsgBox "Check-In is closed!"
      Unload Me
    End Sub
     
    Private Sub CommandButton4_Click()
      If MsgBox("Are you sure to print the Documents?", vbYesNo, "Demande de confirmation") = vbYes Then
        With Sheets("Pax manifest").PageSetup
          .PrintArea = "A1:H68"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Sheets("Pax manifest").PrintOut Copies:=6
        With Sheets("Airwaybill").PageSetup
          .Orientation = xlLandscape
          .PrintArea = "A1:Q33"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Sheets("Airwaybill").PrintOut Copies:=5
        With Sheets("Tag sheet Exxon").PageSetup
          .PrintArea = "A1:L56"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Sheets("Tag sheet Exxon").PrintOut
        With Sheets("Weight Sheet").PageSetup
          .Orientation = xlLandscape
          .PrintArea = "A1:Q55"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
        Sheets("Weight Sheet").PrintOut Copies:=2
      End If
      Unload Me
    End Sub
     
    Private Sub CommandButton5_Click()
      If MsgBox("Are you sure to print the report?", vbYesNo, "Demande de confirmation") = vbYes Then
        With Sheets("Escale Report").PageSetup
          .PrintArea = "A1:H37"
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
        End With
      End If
      Sheets("Escale report").PrintOut
      Unload Me
    End Sub
     
    Private Sub CommandButton6_Click()
      If MsgBox("Are you sure to close this flight? This will erase data.", vbYesNo, "Demande de confirmation") = vbYes Then
        With Sheets("Check in Exxon")
          .Range("C5:C12") = ""
          .Range("G5:G9") = ""
          .Range("L3") = ""
          .Range("B16:L63") = ""
          .Range("M16:M63") = ""
          .Range("J5:J9") = ""
        End With
        With Sheets("Pax manifest")
          .Range("A10:F57") = ""
        End With
        With Sheets("Airwaybill")
          .Range("A10:Q31") = ""
        End With
        With Sheets("Escale report")
          .Range("B8") = ""
          .Range("B10") = ""
          .Range("D8") = ""
          .Range("D10") = ""
          .Range("F8") = ""
          .Range("F10") = ""
          .Range("H6") = ""
          .Range("H8") = ""
          .Range("H10") = ""
          .Range("B13:C15") = ""
          .Range("C18:C21") = ""
        End With
      End If
      Unload Me
    End Sub
    Code UserForm3:

    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
     
    Private Sub CmdREADY_Click()
       Set Cr = Sheets("Escale report")
     
       Dim Today
       Today = Time
       Me.Caption = Today
       Cr.Range("C19").Value = Today
     
       Cr.Range("D10") = LstCHECKAGENT.Value
       Cr.Range("F10") = LstTRAFICAGENT.Value
     
     
       MsgBox "Check-In is open!"
     
       Unload Me 'Ferme le formulaire
     
    End Sub
     
    Private Sub UserForm_Initialize()
     
       LstCHECKAGENT.List = Array("Monique", "Marissa", "Boukhar", "Idriss", "Simon", "Kidjang", "Innocent", "Ahmat")
       LstTRAFICAGENT.List = Array("Idriss", "Boukhar", "Monique", "Marissa", "Simon", "Mehdi", "David", "Kidjang", "Innocent", "Ahmat")
     
    End Sub
    Merci pour votre retour

  18. #18
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Bonjour MarcL,

    J'ai déjà fait le pas à pas, mais il n'y a aucun bug. L'erreur apparaît de temps en temps sur une machine ou sur une autre.
    Et quand l'erreur se produit Excel redémarre, donc pas possible de faire du pas à pas sur quelque chose qui n'existe plus.

    Bonne soirée,

  19. #19
    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,

    L'erreur 75, c'est une erreur d'accès au fichier

    Vérifier si le fichier existe
    Vérifier s'il n'y a pas d'erreur de chemin d'accès, ou de caractères parasites dans les chemins d'accès.
    Vérifier si le dossier n'est pas bloqué par Windows.
    À 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.

  20. #20
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Bonsoir,

    Merci de ta réponse. J'ai vérifié, toutes les feuilles existent et ont été définies.
    Après j'ai deux Useforms qui appellent une meme troisième.
    En fait cela est fait comme suit:
    UserForm1 est appelé sur une première feuille et le premier bouton appelle UserForm3
    Sur une deuxième feuille UseForm2 est appelé et le premier bouton appelle UserForm3

    Lors de la création des Forms, j'ai fait un copier coller des boutons, mais chaque bouton est défini correctement.

    Bref je ne sais pas d'où cela vient surtout que 99% du temps cela fonctionne.
    Ce n'est pas très gênant mais quand cela plante cela fait perdre du temps aux agents qui saisissent les données, obligés de redémarrer et de rouvrir le fichier.

    Merci encore pour tes pistes.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Erreur 1000 récurrente
    Par triaguae dans le forum Windows 7
    Réponses: 1
    Dernier message: 29/10/2013, 13h14
  2. Erreur SSL récurrente
    Par mckilleron dans le forum Langage
    Réponses: 0
    Dernier message: 16/09/2013, 14h22
  3. [AC-2010] erreur 3441 récurrente
    Par munity dans le forum Access
    Réponses: 0
    Dernier message: 01/08/2012, 10h34
  4. Erreurs Tomcat récurrentes
    Par Le Mage dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 14/05/2007, 10h14
  5. [Flex/Bison] Erreur syntaxique récurrente et inexpliquée
    Par BiM dans le forum Générateurs de compilateur
    Réponses: 3
    Dernier message: 11/02/2007, 16h37

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