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 23/11/2011, 14h35   #1
Membre habitué
 
Avatar de CODYCO
 
Homme
Webplanneur
Inscription : avril 2009
Messages : 138
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webplanneur
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 138
Points : 140
Points : 140
Par défaut compatibilité office excel 2003 2010

Bonjour à tous

j'en profite pour remercier tous les participants au forum qui font que je ne poste que tres rarements, je fini toujours par trouver mon bonheur.

Mon probleme aujourd'hui est que toutes mes applications vba tourne sous office 2003. Demain une partie de nos collaborateurs va basculer sous Seven et sous office 2010.

Je suis confronter a des problemes de compatibilité de mes macro sous les différents environnements.

Les bibliotheques qui ne sont pas les memes...j'ai en partie résolu le probleme en copiant le dossier Office 11 dans office 14, mais ne suis pas certain que ce soit la bonne méthode...

Mon gros problèmes reste ce Pu... de Ruban dans office 2010.
Un de mes codes masqué tous les menu de excel sauf le menu "perso" que je créer à la volé.

Aujourd'hui il est plus difficile de gerer tout cela directement sous vba sans passé par le xml apparement.

Mes commandes qui masqué les barres d'outils et barre de menu ne marche plus.
Les commandes de largeur de zone de texte ne marche plus non plus.
Je ne parviens pas a nommer la barre "perso" que je créer autrement que dans l'onglet complément de office 2010.

Avez vous des solutions...SVP et sans passer par le xml qui je ne sais pas si il serais pris en charge sous 2003?

Je vous joins un bout de code de la procedure qui gere l'affichage des barres, celle-ci est appeler depuis le Thisworbook.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Creation_Cbar() 'Créer et paramètre une nouvelle barre d'outils et efface les autres
Dim Cbar As CommandBar '<-- déclaration de variable pour création de barre de commande
Dim B_Site As CommandBarButton '<-- déclaration de variable pour un contrôle de type bouton de commande
Dim B_Bat As CommandBarButton '<-- déclaration de variable pour un contrôle de type bouton de commande
Dim B_Acc As CommandBarButton '<-- déclaration de variable pour un contrôle de type bouton de commande
Dim B_Imp As CommandBarButton '<-- déclaration de variable pour un contrôle de type bouton de commande
Dim B_Frm As CommandBarButton '<-- déclaration de variable pour un contrôle de type bouton de commande
Dim Info As CommandBarComboBox '<-- déclaration de variable pour un contrôle de type zone de texte ou zone de liste
Dim x
 
On Error Resume Next
For x = 1 To Application.CommandBars.Count
With Application.CommandBars(x)
.Visible = False                                         'Efface les barres outils active
End With
Next x
 
'Défini les paramètres de la nouvelle barre
Set Cbar = Application.CommandBars.Add(Name:="Navigation", Position:=msoBarTop, Temporary:=True)
With Cbar
    .Visible = True
    .Protection = msoBarNoMove + msoBarNoCustomize
End With
Ensuite je défini mes boutons etc...
CODYCO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 21h31   #2
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Pour avoir plus d'info sur le ruban tu peux t'aider de ce tutoriel.

Le ruban n'est en effet pas accessible sur office 2003 et inférieure.

Tu peux faire un teste sur la version d'excel en utilisant
Code :
if application.version = ... then
Une petite recherche te permettra de déterminé le numéro de version en fonction de la version d'office (2000, 2007, 2010...)
Ainsi, sur une version inférieur à 2007 tu places tes menus.

Mais bon, tout ceci ne rendra pas compatible un fichier donné avec toutes les versions d'Excel, à un moment il va falloir déterminer sur quelle version travaille ton client et faire un fichier qui correspond à sa version d'Excel.

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 10h31   #3
Membre habitué
 
Avatar de CODYCO
 
Homme
Webplanneur
Inscription : avril 2009
Messages : 138
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webplanneur
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 138
Points : 140
Points : 140
Par défaut re

Merci pour ta seule réponse déja,
Le sujet ne semble pas passioner les foules.

Pourtant la problématique est réelle rendre compatible ce type de code à la fois sous 2003 et 2010.

Si je comprend bien le tuto, il n'y a plus de code VBA permettant de gerer ces objet directement, tu es focément obligé de repasser par ces feuilles de style xml?
CODYCO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 11h11   #4
Membre régulier
 
Homme
Developpeur
Inscription : novembre 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire (Rhône Alpes)

Informations professionnelles :
Activité : Developpeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 83
Points : 87
Points : 87
Par défaut sdispro

Salut,

si j'ai bien compris ton souhait essai simplement ce code:

Code :
1
2
3
4
5
6
7
Macro1 Macro
'
Application.DisplayFullScreen = True
   ActiveWindow.DisplayHeadings = False
    ActiveWindow.DisplayGridlines = False
'
End Sub
Bonne journée
sdispro est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 25/11/2011, 17h39   #5
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Citation:
Envoyé par CODYCO Voir le message
Merci pour ta seule réponse déja,
Le sujet ne semble pas passioner les foules.

Pourtant la problématique est réelle rendre compatible ce type de code à la fois sous 2003 et 2010.

Si je comprend bien le tuto, il n'y a plus de code VBA permettant de gerer ces objet directement, tu es focément obligé de repasser par ces feuilles de style xml?
Salut
Oui c'est bien cela.
il est possible par le code VBa de personnaliser une partie du ruban car il y a des listes déroulantes et boutons avec listes incorporées appellent un callback pour renseigner leur contenu, il est alors possible de mettre ce que tu veux dans la liste.

Mais comme je te l'ai dis, il est a mon avis impossible de faire un fichier compatible 2003 et 2007 avec une utilisation du ruban ou d'un menu personnalisé (en 2007 les menu perso apparaissent dans l'onglet complément... mais bon c'est pas génial).

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/11/2011, 18h22   #6
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 199
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 199
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Salut.

Je ne peux que confirmer les dires de Qwazerty (que je salue au passage).

L'option qui est souvent prise en entreprise est de ne plus faire évoluer la version 2003 et de retravailler la version 2007-2010.

Ces versions offrent de nouveaux outils (tableaux, 64 mfc au lieu de 3, tris et filtres sur couleurs (64 tris au lieu de trois),...) et de nouvelles fonctions (fonctions .ENS, notamment), ruban, bien entendu (qui demande une refonte sérieuse du code si création de barres personnalisées)... Ces outils amènent à de nouvelles stratégies, des conceptions de classeur nouvelles (notamment l'utilisation des "tableaux") qui apportent des véritables avancées mais qui demandent autre chose qu'une vérification de la compatibilité.

C'est une chance de dépoussiérer de vieilles applis, de regarder les classeurs d'un oeil nouveau et d'apporter de véritables améliorations dans son travail quotidien.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 28/11/2011, 08h51   #7
Membre habitué
 
Avatar de CODYCO
 
Homme
Webplanneur
Inscription : avril 2009
Messages : 138
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webplanneur
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 138
Points : 140
Points : 140
Par défaut Merci

Bien,

Je ne peux que me résigné et comme le dit pierre avoir une approche posotif en me disant que c'est l'occasion de revoir l'ensemble des codes, même si cette charge de travail n'était pas focément prévu...

Le choix des entreprise de rester sous 2003 me semblait aussi judicieux mais seulement la gestion des DSI est souvent différente, remplacement de PC = passage obligé vers windows 7 et office 2010.

Je pense que je vais me tourner vers la solution du double fichier et de la double version de code. Cela me rappel les début d'internet ou je devais rendre mon code html compatible entre netscape et explorer.

Un dernier service pouvez m'orienter sur la création d'un onglet personnalisé du rubant et de pouvoir faire disparaitre tous les autres onglets, j'aimerais vraiment que les utilisateurs ne puissent gérer que les boutons nécessaires.

Bien merci à vous.
CODYCO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 12h18   #8
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 199
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 199
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
tu pourras lire utilement le tuto de silkyroad sur le sujet. Il est rédigé pour la version 2007, mais il est tout à fait pertinent pour la 2010, même si cette version permet certaines personnalisations.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 15h35   #9
Membre habitué
 
Avatar de CODYCO
 
Homme
Webplanneur
Inscription : avril 2009
Messages : 138
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webplanneur
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 138
Points : 140
Points : 140
Pour conclure et pour ceux qui pourrais rencontrer le même probleme voici le code que j'ai mis en place:

J'ai fait le choix de créer un fichier xla à savoir une macro complémentaire :

Code :
1
2
3
4
5
6
7
8
9
10
11
Private Sub Workbook_Open()
'Detection de la version d'office et redirection
If Application.Version <= 11 Then 'Si supérieur à Office 2003 ferme ce classeur et ouvre version 2010
'Appel la création de la barre outils
Creation_Cbar_2003
'Si la version n'est pas en 2003
Else
'Appel la création de la barre outils
Creation_Cbar_2010
End If
End Sub
Dans ces deux macro j'ai créer une barre d'outils provisoire en fonction de la version, j'ai donc deux codes et deux type de traitement différents.

Merci encore à tous
CODYCO est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web