Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2012, 11h59   #1
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : décembre 2011
Messages : 91
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Service public

Informations forums :
Inscription : décembre 2011
Messages : 91
Points : 13
Points : 13
Par défaut Debogage Macro 2010

Bonjour à tous et à toutes.


Donc j'ai une macro que j'essaie avec tant de mal de déboguer mais je ne trouve pas la coquille.

Cette macro fonctionne très bien sous 2003 mais pas sous 2010.

l'erreur est sur cette partie du code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 On Error Resume Next
    Workbooks(Base_Hibiscus_reelle).Activate
    If Err.Number <> 0 Then
        Err.Clear
        flag_base_en_ligne = False
        Application.StatusBar = "Ouverture de la base Hibiscus choisie"
        Workbooks.Open Filename:=Chemin_serveur & Base_Hibiscus_reelle, Password:=PWH
        If Err.Number <> 0 Then
            msg = "ATTENTION : problème avec la base " & Base_Hibiscus_reelle & Chr(10) & Chr(10) _
                    & "Merci de contacter le SVP en lui précisant le contexte où vous vous trouvez"
            Style = vbOKOnly + vbCritical + vbDefaultButton1
            Title = "       Message d'erreur"
            reponse = MsgBox(msg, Style, Title)
            Application.StatusBar = False
            End
        End If
    Else
        flag_base_en_ligne = True
    End If
    On Error GoTo 0
Des que je fais un mode pas à pas ,l'instruction If Err.Number <> 0 est toujours vrai et donc affiche toujours le message d'erreur "msg" indiqué dans la conditionnelle.

Les variables sont tous en Public.
Quand je retire le On error Resume Next cela m'affiche
Erreur d'excution 9
L'indice n'appartient pas a la selection pourtant dans les valeurs des variables locales j'ai bien ceci
Base_Hibiscus_reelle : "Base_Hibiscus_RP.xls" : Variant/String

Base_Hibiscus_reelle n'est pas vide..

d'ou pourait venur le probleme?
Quelqu'un aurait une idée ?

Help
Merci à tous et à toutes
debutVBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 12h38   #2
Membre Expert
 
Homme Hervé Silve
Inscription : août 2010
Messages : 774
Détails du profil
Informations personnelles :
Nom : Homme Hervé Silve
Localisation : France

Informations forums :
Inscription : août 2010
Messages : 774
Points : 2 094
Points : 2 094
Bonjour,

As-tu contrôlé la bonne construction de ton chemin avec un Debug.Print ou MsgBox ?
Code :
1
2
 
MsgBox Chemin_serveur & Base_Hibiscus_reelle
Hervé.
Theze est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/02/2012, 12h51   #3
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : décembre 2011
Messages : 91
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Service public

Informations forums :
Inscription : décembre 2011
Messages : 91
Points : 13
Points : 13
Par défaut suite réponse

Bonjour theze,

Oui j'ai bien controlé en faisant MsgBox Chemin_serveur & Base_Hibiscus_reelle et cela m'affiche bien le chemin complet du fichier .

Je ne vois vraiment pas d'ou cela pourrait venir...

Merci à toi
debutVBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 12h59   #4
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

tu es passé sous 2010

Citation:
Base_Hibiscus_reelle : "Base_Hibiscus_RP.xls"
as-tu passé ton fichier en .xlsx ?

Cordialement,

Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/02/2012, 13h02   #5
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : décembre 2011
Messages : 91
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Service public

Informations forums :
Inscription : décembre 2011
Messages : 91
Points : 13
Points : 13
Par défaut suite réponse

Bonjour Ormonth ,

Non je l'ai laissé sous xls.

Car la macro est censé fonctionner sur des postes qui sous 2003 et 2010 .

La ou est la difficulté

Help

Merci à toi en tout cas..
debutVBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 09h57   #6
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : décembre 2011
Messages : 91
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Service public

Informations forums :
Inscription : décembre 2011
Messages : 91
Points : 13
Points : 13
Par défaut suite réponse

Bonjour à tous et à toutes

Personne aurait une petite idée pour solutionner le problème évoqué ci dessous?

Merci à tous et à toutes
debutVBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 13h48   #7
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

d'après ce que tu fournis comme données.. non

Passe par la méthode empirique :

tu mets ta ligne de code :
Code :
  Workbooks.Open Filename:=Chemin_serveur & Base_Hibiscus_reelle, Password:=PWH
dans une procédure simple toute seule en remplaçant les variables pas leur valeur en "dur"

tu testes, ça ouvre ou non..
tu remplace une valeur pas la variable ad-hoc que tu alimente bine sur, tu testes etc...

Cordialement,

Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 13h55   #8
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : décembre 2011
Messages : 91
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Service public

Informations forums :
Inscription : décembre 2011
Messages : 91
Points : 13
Points : 13
Par défaut suite réponse

Bonjour Ormonth,

J'ai déja testé en remplaçant par les valeurs en dur mais visiblement le classeur ne s'ouvre pas....

j'ai fais une boucle du type

Code :
1
2
3
4
5
For each wb in workbooks 
 
msgBox "la liste des classeurs ouverts sont :" & wb.name
 
next
mais il ne s'affiche pas..

très très étrange..

Je peux éventuellement mettre le fichier à dispo si tu aurais peut etre une vague idée..

Moi je sèche...

Merci
debutVBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 14h21   #9
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Citation:
Envoyé par debutVBA Voir le message
Bonjour Ormonth,

J'ai déja testé en remplaçant par les valeurs en dur mais visiblement le classeur ne s'ouvre pas....
Si sur une ligne de code il ne trouve pas ton classeur, c'est qu'il y a un souci dans le chemin (écrit ou existence du classeur), testes la même ligne sous 2003 (cf ton 1er post), il ne doit pas y avoir de différence.

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 15h07   #10
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : décembre 2011
Messages : 91
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Service public

Informations forums :
Inscription : décembre 2011
Messages : 91
Points : 13
Points : 13
Par défaut suite réponse

Re Ormonth,

Petite info supplémentaire,je retire ces deux lignes de code :
On Error Resume Next
Workbooks(Base_Hibiscus_reelle).Activate

et je tente d'ouvrir le classeur avant le IF et j'obtiens ce message d'erreur :

Erreur d'execution -2147021892 (80070bbc)

Office à détecté un problème avec ce ichier .Pour la sécurité de votre Ordinateur ,ce fichier ne peut pas être ouvert...

Qu'est ce que cela signifie...

Code :
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
 
 
     ' On Error Resume Next
    ' Workbooks(Base_Hibiscus_reelle).Activate
     Workbooks.Open Filename:="D:\x0ASUISS\Desktop\" & "Base_Hibiscus_RP.xls", Password:=PWH
 
    If Err.Number <> 0 Then
        Err.Clear
        flag_base_en_ligne = False
        Application.StatusBar = "Ouverture de la base Hibiscus choisie"
         'Workbooks.Open Filename:=Chemin_serveur & Base_Hibiscus_reelle, Password:=PWH
        ' Workbooks.Open Filename:="D:\x0ASUISS\Desktop\" & "Base_Hibiscus_RP.xls", Password:=PWH
 
 
        'Pour vérifier tous les classeurs ouverts
        For Each wb In Workbooks
        MsgBox "les différents classeurs ouverts sont :" & wb.Name
 
        Next
 
 
 
        If Err.Number <> 0 Then
            msg = "ATTENTION : problème avec la base " & Base_Hibiscus_reelle & Chr(10) & Chr(10) _
                    & "Merci de contacter le SVP en lui précisant le contexte où vous vous trouvez"
            Style = vbOKOnly + vbCritical + vbDefaultButton1
            Title = "       Message d'erreur"
            reponse = MsgBox(msg, Style, Title)
            Application.StatusBar = False
            End
        End If
    Else
        flag_base_en_ligne = True
    End If
    On Error GoTo 0
'
debutVBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 15h10   #11
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour

vois :
http://technet.microsoft.com/fr-fr/l.../ee857084.aspx

http://support.microsoft.com/default...;fr-FR;2501584

http://www.developpez.net/forums/d11...partir-reseau/

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 15h56   #12
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : décembre 2011
Messages : 91
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Service public

Informations forums :
Inscription : décembre 2011
Messages : 91
Points : 13
Points : 13
Par défaut suite réponse

Re,

Lorsque j'ouvre en premier Lieu le Fichier en mode Protégé et que juste après je parcours dans une boucle la liste des classeurs ouverts ,il me l'affiche bien.

Par contre je suis obligé de l'ouvrir manuellement..

Quelle instruction faut -il ajouter pour qu'il ouvre directement en mode protégé ,par contre ensuite la macro ne finit pas de s'executer ,une erreur apparait ici

ça arrive ici et ça arrete l'execution de la macro :

' Test que la base est bien ouverte avec possibilité d'écriture si la macro le nécessite
'
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
    If ActiveWorkbook.ReadOnly = True And type_ouverture = "Base réelle" Then
        msg = "ATTENTION : la base " & Base_Hibiscus_reelle & " est en cours d'utilisation." & Chr(10) & Chr(10) _
                & "La macro va être arrêtée." & Chr(10) & Chr(10) _
                & "Pour connaître l'utilisateur, ouvrir manuellement W:\Hibiscus\" & Base_Hibiscus_reelle & Chr(10) _
                & "et Excel affichera son nom."
        Style = vbOKOnly + vbCritical + vbDefaultButton1
        Title = "Problème d'accès simultané"
        reponse = MsgBox(msg, Style, Title)
        ActiveWorkbook.Close
        Call Fermeture
        End
        Application.StatusBar = False
    End If
debutVBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2012, 16h01   #13
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : décembre 2011
Messages : 91
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Service public

Informations forums :
Inscription : décembre 2011
Messages : 91
Points : 13
Points : 13
Par défaut Topic à suprimer

Bonjour,
Est-il possible de supprimer le Topic?

Si oui,modérateurs pouvez-vous le supprimer .?
Merci bien.
debutVBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h20.


 
 
 
 
Partenaires

Hébergement Web