| ||||||||
Petite astucienne | Bonjour,
J'ai réalisé un fichier excel avec une macro (pour la macro j'ai eu un peu d'aide). 1: Les dates qui sont dans mes onglets ne se copie pas correctement dans ma feuille de compilation. Exemple j'inscris 2014-01-20 dans la feuille janvier et dans ma compilation il va être inscrit 1900-01-01 (les format de date de cellules sont identique) 2-Lorsque que je m'envoie le fichier au travail, les macros ne fonctionne pas et pourtant la sécurité est faible. | |||||||
Publicité | ||||||||
| ||||||||
Astucien | Bonjour,
Je ne vois pas le texte de la macro, n'ai donc aucune idée de ce qu'elle fait ni de la façon dont son exécution est lancée.
Qu'appelles-tu feuille de compilation ? Je connais des feuilles de calcul et des feuilles graphiques dans Excel (quelques autres si on remonte aux versions antérieures à Excel 97), côté VBA des modules (de code [ou standard], de classe), des feuilles formulaires personnalisés (userforms)...
Quels sont-ils ? Et quels sont les formats par défaut dans tes paramètres régionaux ? Enfin, un fichier exemple comportant ladite macro permettrait de voir sur pièce les problèmes éventuels... | |||||||
Petite astucienne | Bonjour,
J'ai voulu envoyé le fichier mais ont peu juste insérer des photos ou un lien >>>>>>Alors voici le lien du fichier héberger Fichier excel Le fichier excel a été créer avec office 2007 mais au travail j'ai la version 97-2003
Merci beaucoup pour l'aide qui peut être apporter :) Modifié par anafolia le 10/12/2014 16:12 | |||||||
Petit astucien | Salut le Forum C'est la partie suivante, qui vient réécrire dans ta colonne date pour les 1900-01-01, 1900-01-02 . . .
Mytå Modifié par Mytå le 10/12/2014 18:44 | |||||||
Petite astucienne | Bonjour,
Quel est le correctif a y apporté ? comme je l'ai mentionné je suis débutante en VBA :S Une piste d'idée sur le pourquoi je suis incapable exécuter les macro au bureau avec une version 97-2003? (sachant que j'ai converti mon fichier 2007 en 97-2003) Merci
| |||||||
Petit astucien | Re le Forum Tu enlèves la partie que j'ai indiqué dans mon message précédent. Pour que ton fichier le fichier fonctionne au bureau, il doit être en .xls ou en installant le Pack de compatibilité Microsoft Office Mytå Modifié par Mytå le 10/12/2014 21:45 | |||||||
Petite astucienne | Bonsoir,
Je l'ai mis en .xls et malgré tout il ne fonctionnait pas du tout du moins les macro. Je vais retirer la partie que mentionne et je vais voir si ça fonctionne et pour les date pourquoi ça fonctionne pas?
Merci Modifié par anafolia le 10/12/2014 22:50 | |||||||
Astucien | Bonsoir, As-tu appliqué les recommandations de Mytå ? As-tu converti ton fichier au format 97-2003 en le réenregistrant avec la commande Enregistrer sous... ? Converti normalement, les macros fonctionnent sous Excel 2000. Pas de raison donc pour qu'il ne fonctionne pas après conversion ! Pour les dates en col. A, le passage incriminé les remplace par un numéro d'ordre incrémenté à partir de 1, de A10 jusqu'à la fin ! On ne voit pas quelle en serait la raison, mais le résultat coule de source : 1=1er janvier 1900... Tu peux prolonger la suppression de ce fragment par un petit "toilettage" qui permettrait de s'y retrouver plus vite à la lecture: - la feuille "Tous les délais" n'existe pas, inutile de tester sa présence, - la variable aa est déclarée mais non utilisée tu peux la supprimer de la déclaration, de même les variables fin et fin1 sont utilisées concurremment et alternativement de façon semblable, une suffirait donc, fin par exemple et tu remplaces fin1 par fin dans le code, - je supprimerais aussi l'étiquette 1 et l'instruction GoTo 1 : il suffit de remplacer If fin < 10 Then Goto... par If fin >= 10 Then sh.Range(... - il est bien d'inhiber la mise à jour de l'affichage (ScreenUpdating) en début de macro, mais il serait souhaitable de le rétablir à la fin. | |||||||
Petite astucienne | bonsoir,
J'ai fait les recommandation de Myta mais la feuille "tous les délais" existe bien dans le fichier et c'est justement sur cette feuille qu'est compilé les données de la macro. Le code avec les changements suggéré donne ceci: Modifié par anafolia le 11/12/2014 03:14 | |||||||
Astucien | Bonjour, Peut-être utilises-tu un autre fichier que celui que tu as mis à disposition ? La feuille "Tous les délais" n'est pas présente dans ce classeur, je suppose qu'elle ferait concurrence à la feuilles "TOUS DÉLAIS 2015", qui elle est bien présente et est celle où se fait le regroupement (Feuil13). C'est aussi la feuille qui contient le bouton : à ce propos, il n'y en a qu'un et celui censé lancer la procédure effacer est manquant, ceci dit cette procédure n'est sans doute pas utile car le même effacement se fait dans grouper. Par ailleurs pour rétablir la mise à jour de l'affichage, ScreenUpdating doit être mis à 1 (sans doute est-il plus immédiatement perceptible d'utiliser les valeurs booléennes : True (=1), False (=0)). Quelques commentaires intercalés pour t'aider à comprendre ce que tu programmes : Sub grouper() | |||||||
Astucien | Une petite variation pour éviter l'utilisation entremêmée du nom de code et du nom pour la même feuille. Et aussi tenant compte que si fin<10, il n'y a rien à effacer. Appeler la procédure avec la feuille de "compil" en argument : Sub grouper(fcomp As Worksheet) Private Sub CommandButton1_Click() Et ton fichier au format 97-2003 : http://cjoint.com/?DLllLHdjiDk | |||||||
Petite astucienne | Bonjour,
Wow ça fonctionne à merveille je me l'envoie aujourd'hui au travail :D et je test je te redonne des nouvelles :)
MErci beaucoup | |||||||
Astucien | OK | |||||||
Petite astucienne | Bonsoir, Tous est parfait reste juste à le faire tester par la utilisateur...mais je verrais pas pourquoi ça fonctionnerais plus :D
Merci beaucoup :) | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|