Enregistrement VBA xls en xlsx

Résolu/Fermé
Signaler
Messages postés
11
Date d'inscription
jeudi 4 août 2016
Statut
Membre
Dernière intervention
10 août 2016
-
Messages postés
17819
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 janvier 2022
-
Bonjour,

Me revoici pour une ultime question (jusqu'à la prochaine). ccm81 m'a créé une macro VBA pour un planning et enregistrer au format xls. (256 colonnes max). Lorsque je transfère cette macro sur mon fichier en xlsx (besoin de plus de 256 colonnes) je ne peux pas l'enregistrer.
J'ai essayé d'enregistrer sous un format xlsm (comme vu dans certaines réponses du forum) mais cela ne fonctionnent toujours pas.
Existe-t-il un moyen d'enregistrer une macro xls sous un format xlsx ?

6 réponses

Messages postés
17819
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 janvier 2022
4 914
Re,

sous ta macro colle ce code

Public Sub MFC()
Dim plage As Range
Set plage = Range("E4:OK60")
Cells.FormatConditions.Delete
plage.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=JOURSEM(E$4;2)>5"
plage.FormatConditions(plage.FormatConditions.Count).SetFirstPriority
plage.FormatConditions(1).Interior.ColorIndex = 15
plage.FormatConditions(1).StopIfTrue = False
plage.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NB.SI('FERIES-TAOPM'!E2:E16;PLANNING!E4)"
plage.FormatConditions(plage.FormatConditions.Count).SetFirstPriority
plage.FormatConditions(1).Interior.ColorIndex = 19
plage.FormatConditions(1).Font.ColorIndex = 3
plage.FormatConditions(1).StopIfTrue = False
plage.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NB.SI('FERIES-TAOPM'!$B$2:$B$14;E$4)"
plage.FormatConditions(plage.FormatConditions.Count).SetFirstPriority
plage.FormatConditions(1).Interior.ColorIndex = 19
plage.FormatConditions(1).Font.ColorIndex = 3
plage.FormatConditions(1).StopIfTrue = False
End Sub


ensuite à la fin de ta macro Public Sub defusionner() juste avant End Sub
saisir Call MFC
comme cela
Next cel
Call MFC
End Sub
1
Messages postés
11
Date d'inscription
jeudi 4 août 2016
Statut
Membre
Dernière intervention
10 août 2016

Ca fonctionne très très bien. Merci beaucoup à Mike-31 et ccm81 pour leur aide très appréciable.
0
Messages postés
17819
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 janvier 2022
4 914
Bonjour,

si ton fichier contient des codes VBA, tu ne peux pas utiliser ou enregistrer sous l'extension XLSX mais sélectionner l'extension XLSM
ensuite si tes codes ne fonctionnent pas il s'agit d'un niveau de protection trop élevé
alors commence par enregistrer sous le fichier et donne lui l'extension XLSM
puis onglet Développeur/module Code/Sécurité des macros/Activer toutes les macros(non recommandé) .........
enregistre le fichier avant de le fermer et de l'ouvrir à nouveau
accepte l'activation des macros et teste ton fichier
si tout fonctionne je t'expliquerai comment remonter le niveau de protection
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Messages postés
11
Date d'inscription
jeudi 4 août 2016
Statut
Membre
Dernière intervention
10 août 2016

Merci.

Tout fonctionne au format xlsm. J'ai pu conserver la macro et toutes mes colonnes.
0
Messages postés
17819
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 janvier 2022
4 914
Re,

as tu contrôlé le niveau de protection de tes macros

regarde la procédure que j'ai rédigé pour relever le niveau et travailler avec un niveau de sécurité élevé pour ta sécurité et celle de ton système
https://www.commentcamarche.net/faq/21009-excel-signature-numerique
0
Messages postés
11
Date d'inscription
jeudi 4 août 2016
Statut
Membre
Dernière intervention
10 août 2016

Merci Mike-31,

Je vais voir ce que cela donne en situation car nous allons être plusieurs à travailler sur ce fichier avec des ordinateurs différents, des sessions différentes et des niveaux d'informatiques différents.

Également je viens de me rendre compte d'un autre problème, je joins d'abord le fichier puis j'explique où est le problème :

https://www.cjoint.com/c/FHjlTjOqlDL

1- sélectionner une cellule dans la plage E6:OK60
2- regarder les 3 mises en forme conditionnelle (leur plage d'application est E4:OK60, ce qui est normal)
3- sélectionner une plage (admettons J12:N12) et fusionner la plage (ce qui équivaut à attribuer une tâche sur plusieurs jours)
4- malheureusement cette tâche est annulée et pour la plage en question (J12:N12) appliquons la macro (merci ccm81) Ctrl+d
5- en apparence tout redevient comme avant
6- sélectionnons une cellule dans la plage E6:OK60 et regardons les mises en forme conditionnelle.
7- les plages d'application ne sont plus du tout comme à l'origine (pour rappel original d'application =E4:OK60)

Est-il possible de remédier à cela ? Peut-on avoir des plages d'application verrouillées pour les mises en forme conditionnelle ? via VBA? via mfc ?

SI besoin pour cette question, je peux réouvrir un sujet avec un titre plus adéquat...

Merci à ceux qui me liront
0
Messages postés
17819
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 janvier 2022
4 914
Re,

le problème est que tu as plusieurs mise en forme conditionnelles, je regarde voir comment contourner le problème
0
Messages postés
17819
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 janvier 2022
4 914
Re,

alors si tes attentes sont satisfaites, passe le statut de cette discussion pertinente en résolu qu'elle serve de référence
ou confirme le nous qu'on le fasse pour toi
0