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 :

BUG Fichier Excel de PC à MAC


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Par défaut BUG Fichier Excel de PC à MAC
    Bonsoir à tous,

    J'ai appris à me servir de VBA pour EXCEL toute seule avec les magnifiques tutos et forums du net mais là je bloque sévère...

    Voici le fichier pour lequel j'implore votre aide : CLIQUEZ ICI

    C'est un fichier destiné à une salle municipale qui gère des demandes de réservations de la part d'associations
    Il comporte 2 formulaires actifs qui s'activent avec les deux premiers boutons de l'onglet GESTION DES ASSOCIATIONS.
    Tout semble bien fonctionner sur PC (Excel 2007 et 2010. A tester sur 2003)

    J'ai développé cet outil sur PC Windows 7 Pro mais l''utilisatrice principale pour laquelle je développe cet outil a un macbook avec une version 2011 d'excel (j'en déduis qu'elle a surement la version Mac OS X 10.7)

    Voici la situation :

    - Sur le 1er formulaire "FICHES ASSOCIATIONS" (cf "FORM1.png") tout fonctionne sur MAC (sauf les flèches que j'ai donc désactivées car ce n'est pas majeur)
    On peut chercher une asso (Bouton CHERCHER), modifier les données, supprimer une association ou bien en créer une.

    - Sur le 2ème formulaire il me reste un BUG majeur :
    Lorsque l'utilisatrice veut créer une nouvelle demande, le mac plante lorsqu'elle veut valider la demande.
    Cf "FORM2.png" en Pièce Jointe.
    N'ayant pas de mac je n'arrive pas à détecter le problème...


    Pouvez-vous ouvrir le fichier, lancer le formulaire n°2 (DEMANDES DE MAD SAISONNIERES) et me dire ce que vous trouvez avec le débugage ? J'ai passé des heures à chercher avant de venir ici...

    Merci à ceux qui pourront m'aider
    Images attachées Images attachées   

  2. #2
    Membre averti
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Par défaut
    Voici le code du programme CREATION DE NOUVELLE DEMANDE au cas ou c'est plus pratique de l'avoir ici direct :


    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
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    Option Explicit
     
     
     
     
     
    '////////////////////////////////////////
    'FORMULAIRE CREATION DEMANDE NEWDEMANDE
    '////////////////////////////////////////
     
     
    '*****************************************
    'INITIALISATION
    '*****************************************
     
    Sub UserForm_Initialize()
    'A l'ouverture du UseForm on tri et on définit les valeurs qui seront dans les listes déroulantes
    Application.ScreenUpdating = False
    Worksheets("LISTING ASSOS").Range("A2:CW1000").Sort Key1:=Worksheets("LISTING ASSOS").Range("B2:B1000")
    Application.ScreenUpdating = True
    Me.ComboBoxCHERCHER.List = Range("NomsAssos").Value
    Me.ComboBoxNbre.List = Range("Nbrecreneaux").Value
    End Sub
     
    '*************************************************
    'CHERCHER DANS LA LISTE L ASSO QUI FAIT LA DEMANDE
    '**************************************************
     
    Private Sub comboboxCHERCHER_Change()
    Dim LigneID As Integer
    LigneID = Me.ComboBoxCHERCHER.ListIndex
    Me.TxtID = Sheets("LISTING ASSOS").Cells(LigneID + 2, 1)
     
    End Sub
     
     
     
    '*****************************************
    'BLOQUER LES COMMANDES SUPPR ET ENREGISTRER
    '*****************************************
     
    Sub ToutBloquer()
    Unload NewDemande
    FORMDemandes.UserForm_Initialize
    FORMDemandes.CommandButtonBEFORE.Enabled = False
    FORMDemandes.CommandButtonNEXT.Enabled = False
    FORMDemandes.ComboBoxCHERCHER_DEMANDE.Enabled = False
    FORMDemandes.CommandButtonSUPPRIMER.Enabled = False
    FORMDemandes.CommandButtonENREGISTRER.Enabled = False
    FORMDemandes.ComboBoxCHERCHER_DEMANDE.Enabled = False
     
     
    End Sub
     
     
    '*****************************************
    'Nouvelle DEMANDE : champs sur fiche ASSOS
    '*****************************************
     
    Sub CreaListingAsso()
    'On enregistre dans la fiche asso les champs de la nouvelle demande
    Dim LigneASSO As Integer
    LigneASSO = Me.ComboBoxCHERCHER.ListIndex
    Sheets("LISTING ASSOS").Cells(LigneASSO + 2, 86) = "VRAI"
    Sheets("LISTING ASSOS").Cells(LigneASSO + 2, 87) = Me.TxtDate.Text
    Sheets("LISTING ASSOS").Cells(LigneASSO + 2, 88) = Me.ComboBoxNbre.Value
    Sheets("LISTING ASSOS").Cells(LigneASSO + 2, 89) = Me.TxtActivite1.Text
    Sheets("LISTING ASSOS").Cells(LigneASSO + 2, 90) = Me.TxtActivite2.Text
    Sheets("LISTING ASSOS").Cells(LigneASSO + 2, 91) = Me.TxtActivite3.Text
     
    End Sub
     
    '*****************************************
    'CRENEAU 1 : Enregistrer sur listing DEMANDES
    '*****************************************
     
    Sub Creneau1Save()
    'SUR L ONGLET DES DEMANDES
    'On crée une première ligne pour le creneau 1
    With Sheets("LISTING Demandes")
    .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Value = Me.TxtID.Text
    .Cells(.Rows.Count, 2).End(xlUp).Offset(1).Value = Me.ComboBoxCHERCHER.Value & "Créneau N°1"
    .Cells(.Rows.Count, 3).End(xlUp).Offset(1).Value = Me.TxtDate.Text
    .Cells(.Rows.Count, 4).End(xlUp).Offset(1).Value = Me.ComboBoxNbre.Value
    .Cells(.Rows.Count, 6).End(xlUp).Offset(1).Value = Me.TxtActivite1.Text
    .Cells(.Rows.Count, 22).End(xlUp).Offset(1).Value = "Créneau N°1"
    End With
    End Sub
     
     
     
    '*****************************************
    'CRENEAU 2 : Enregistrer sur listing DEMANDES
    '*****************************************
     
    Sub Creneau2Save()
    With Sheets("LISTING Demandes")
    .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Value = Me.TxtID.Text
    .Cells(.Rows.Count, 2).End(xlUp).Offset(1).Value = Me.ComboBoxCHERCHER.Value & "Créneau N°2"
    .Cells(.Rows.Count, 3).End(xlUp).Offset(1).Value = Me.TxtDate.Text
    .Cells(.Rows.Count, 4).End(xlUp).Offset(1).Value = Me.ComboBoxNbre.Value
    .Cells(.Rows.Count, 6).End(xlUp).Offset(1).Value = Me.TxtActivite2.Text
    .Cells(.Rows.Count, 22).End(xlUp).Offset(1).Value = "Créneau N°2"
     
    End With
     
     
    End Sub
     
    '*****************************************
    'CRENEAU 3 : Enregistrer sur listing DEMANDES
    '*****************************************
     
    Sub Creneau3Save()
    With Sheets("LISTING Demandes")
    .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Value = Me.TxtID.Text
    .Cells(.Rows.Count, 2).End(xlUp).Offset(1).Value = Me.ComboBoxCHERCHER.Value & "Créneau N°3"
    .Cells(.Rows.Count, 3).End(xlUp).Offset(1).Value = Me.TxtDate.Text
    .Cells(.Rows.Count, 4).End(xlUp).Offset(1).Value = Me.ComboBoxNbre.Value
    .Cells(.Rows.Count, 6).End(xlUp).Offset(1).Value = Me.TxtActivite3.Text
    .Cells(.Rows.Count, 22).End(xlUp).Offset(1).Value = "Créneau N°3"
    End With
     
    End Sub
     
     
    '*****************************************
    'CLIC SUR ENREGISTRER LA NEW DEMANDE
    '*****************************************
     
    Private Sub CommandButtonCreerDemande_Click()
    'on enregistre que si tous les champs sont remplis
     
     
    If Me.ComboBoxNbre.Value = "" Then MsgBox ("Veuillez remplir tous les champs")
     
     
    'SI 1 SEUL CRENEAU DEMANDE
    '*****************************************
     
    If (Me.ComboBoxNbre.Value = 1) Then
            If Me.ComboBoxCHERCHER.Value = "" Or TxtActivite1.Text = "" Or TxtDate.Text = "" Then
            MsgBox ("Veuillez remplir tous les champs")
            Else
     
    'SUR L ONGLET DES FICHES ASSOS
    'On remplit les champs des demandes
    CreaListingAsso
     
    'SUR L ONGLET DES DEMANDES
    'On crée une première ligne pour le creneau 1
     
    Creneau1Save
     
        ToutBloquer
     
              End If
     
            End If
     
     
     
     
    'SI 2 CRENEAUX DEMANDES
    '*****************************************
     
     
    If (Me.ComboBoxNbre.Value = 2) Then
            If Me.ComboBoxCHERCHER.Value = "" Or TxtActivite1.Text = "" Or TxtDate.Text = "" Or TxtActivite2.Text = "" Then
            MsgBox ("Veuillez remplir tous les champs")
            Else
     
     
     'SUR L ONGLET DES FICHES ASSOS
    'On remplit les champs des demandes
    CreaListingAsso
     
    'SUR L ONGLET DES DEMANDES
    'On crée une première ligne pour le creneau 1
    Creneau1Save
     
     'On crée une 2nde ligne pour le creneau 2
    Creneau2Save
     
    ToutBloquer
     
                 End If
                  End If
     
     
     
    'SI 3 CRENEAUX DEMANDES
    '*****************************************
     
    If (Me.ComboBoxNbre.Value = 3) Then
            If Me.ComboBoxCHERCHER.Value = "" Or TxtActivite1.Text = "" Or TxtDate.Text = "" Or TxtActivite1.Text = "" Or TxtActivite2.Text = "" Or TxtActivite3.Text = "" Then
            MsgBox ("Veuillez remplir tous les champs")
            Else
     
     
     'SUR L ONGLET DES FICHES ASSOS
    'On remplit les champs des demandes
    CreaListingAsso
     
    'SUR L ONGLET DES DEMANDES
    'On crée une première ligne pour le creneau 1
    Creneau1Save
     
     'On crée une 2nde ligne pour le creneau 2
    Creneau2Save
     'On crée une 3eme ligne pour le creneau 3
    Creneau3Save
     
    ToutBloquer
               End If
     
     
                      End If
    End Sub
     
    '*****************************************
    'CLIC SUR ANNULER
    '*****************************************
    Private Sub CommandButtonAnnulerDemande_Click()
    Unload NewDemande
    End Sub

  3. #3
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Je ne sais pas si cela pourra t'aider mais on ne sait jamais.

    J'ai eu un problème similaire sur un développement Sous windows qui plantait sur MAC.

    Dans mon cas, le classeur était protégé en mode UserInterfaceOnly. Sur Windows tout fonctionnait mais pour le MAC j'ai du déprotéger pendant l'exécution d'une partie du code.
    Cette protection plantait lors les mise en forme bordure notamment...

  4. #4
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    pour mac et pc le VBA à de subtiles nuances
    essayes de voir si les espaces de tes noms d'onglets sont bien digérés ( en remplaçant les espaces par un underscore "blabla 2007" par "blabla_2007")

  5. #5
    Membre averti
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Par défaut
    Voici la partie du code qui bug :

    Pour 1 CRENEAU ca marche pas, pour 2 CRENEAUX ca marche pas, pour 3 Ca marche.... ??? Quand je dis que ca marche pas c'est ERREUR 51 INTERNE

    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
    '*****************************************
    'CLIC SUR ENREGISTRER LA NEW DEMANDE
    '*****************************************
    
    Private Sub CommandButtonCreerDemande_Click()
    'on enregistre que si tous les champs sont remplis
    
    If Me.ComboBoxNbre.Value = "" Then MsgBox ("Veuillez remplir tous les champs")
    
    
    'SI 1 SEUL CRENEAU DEMANDE
    '*****************************************
    
            If (Me.ComboBoxNbre.Value = 1) Then
            If Me.ComboBoxCHERCHER.Value = "" Or Me.TxtActivite1.Text = "" Or Me.TxtDate.Text = "" Then
            MsgBox ("Veuillez remplir tous les champs")
            Else
           
    'SUR L ONGLET DES FICHES ASSOS
    'On remplit les champs des demandes
    CreaListingAsso
    
    'SUR L ONGLET DES DEMANDES
    'On crée une première ligne pour le creneau 1
    Creneau1Save
    ToutBloquer
    
              End If
              End If
              
    'SI 2 CRENEAUX DEMANDES
    '*****************************************
    
               
    If (Me.ComboBoxNbre.Value = 2) Then
            If Me.ComboBoxCHERCHER.Value = "" Or Me.TxtActivite1.Text = "" Or Me.TxtDate.Text = "" Or Me.TxtActivite2.Text = "" Then
            MsgBox ("Veuillez remplir tous les champs")
            Else
     
     
     'SUR L ONGLET DES FICHES ASSOS
    'On remplit les champs des demandes
    CreaListingAsso
    'SUR L ONGLET DES DEMANDES
    'On crée une première ligne pour le creneau 1
    Creneau1Save
     'On crée une 2nde ligne pour le creneau 2
    Creneau2Save
    
    ToutBloquer
    
                 End If
                  End If
    
                 
    'SI 3 CRENEAUX DEMANDES (CA MARCHE JUSTE POUR 3 CRENEAUX)
    '*****************************************
    
    If (Me.ComboBoxNbre.Value = 3) Then
            If Me.ComboBoxCHERCHER.Value = "" Or Me.TxtDate.Text = "" Or Me.TxtActivite1.Text = "" Or Me.TxtActivite2.Text = "" Or Me.TxtActivite3.Text = "" Then
            MsgBox ("Veuillez remplir tous les champs")
            Else
         
     
     'SUR L ONGLET DES FICHES ASSOS
    'On remplit les champs des demandes
    CreaListingAsso
    'SUR L ONGLET DES DEMANDES
    'On crée une première ligne pour le creneau 1
    Creneau1Save
     'On crée une 2nde ligne pour le creneau 2
    Creneau2Save
     'On crée une 3eme ligne pour le creneau 3
    Creneau3Save
    
    ToutBloquer
               End If
            End If
            
    End Sub
    Pour ceux qui ont le temps d'essayer mon fichier sur MAC c'est très étrange
    j'ai un combobox ou l'utilisateur choisit 1, 2 ou 3 (nombre de créneau pour une nouvelle "demande")
    J'ai donc du code avec
    if combobox.value = 1
    then blabla
    else blabla
    end if
    If combobox.value = 2
    etc

    Ca fonctionne pour if combobox.value = 3 mais pas pour 1 et 2...
    Alors que le code est quasiment IDENTIQUE...
    PLease please help me....

    DARANC et 78CHRIS merci j'ai suivi vos conseils mais ça marche tjs pas sur un MAC !

  6. #6
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    pour tes crénaux il semblerait que si tes TXT ne sont pas tous non vide ça coince ( c'est sur cette ligne que ça s'arrête ? If (Me.ComboBoxNbre.Value =
    et avec un espace dans les cas 1 et 2 pour remplir les champs non tester histoire de ne pas les laisser vide

Discussions similaires

  1. [XL-2010] Bug liens sur autres fichiers Excel
    Par Kanetsugu dans le forum Excel
    Réponses: 2
    Dernier message: 19/07/2013, 17h37
  2. Bug POI : ouverture de fichier excel versions 97-2003
    Par mouss4rs dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 06/02/2012, 22h07
  3. [XL-2000] Comment fermer un fichier excel si il est ouvert mais sans bug s'il n'est pas ouvert
    Par Avinetor dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/06/2009, 14h09
  4. [Excel] Bug I.Explorer après génération de fichiers excel
    Par wtoueress dans le forum Bibliothèques et frameworks
    Réponses: 20
    Dernier message: 30/06/2008, 13h40

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