Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Les objets perdent leur nom......

10 réponses
Avatar
ThierryP
Bonjour le forum,

Je subis un ph=C3=A9nom=C3=A8ne =C3=A9trange autant que myst=C3=A9rieux....=
.

J'ai cr=C3=A9 un mod=C3=A8le Excel, avec un certain nombre de cases =C3=A0 =
cocher (CheckBox) et boutons Options (OptionButton), chaque objet =C3=A9tan=
t renomm=C3=A9 de mani=C3=A8re explicite.

Ce mod=C3=A8le a =C3=A9t=C3=A9 install=C3=A9 sur plusieurs PC portables, to=
us b=C3=A9n=C3=A9ficiant de la m=C3=AAme version d'Office (Famille et PME 2=
013, V15.0.4433.1508).

Sur un seul des PC, et pas de mani=C3=A8re syst=C3=A9matique, les noms sont=
perdus et les objets sont reomm=C3=A9s en "Checkbox1", "OptionButton1" etc=
...

Evidemment, toutes les macros du projet sont tr=C3=A8s vex=C3=A9es, et la c=
ompilation du projet m'envoie gentiment bouler =C3=A0 chaque ouverture du f=
ichier....

Si quelqu'un a une id=C3=A9e, une piste, une suggestion.... voire m=C3=AAme=
une solution, je suis preneur !!!

Merci d'avance =C3=A0 tout le monde !

ThierryP

10 réponses

Avatar
Michd
Bonjour.
D'abord, si tu utilises le même modèle pour plusieurs PC et que ces PC sont
en réseau, pourquoi ne pas utiliser un seul modèle que tu disposes dans un
répertoire dont tous les utilisateurs ont accès? C'est plus facile à
contrôler et à mettre à jour au besoin!
Est-ce possible qu'un utilisateur puisse modifier d'une quelconque manière
le modèle volontairement?
Quelle est la date de la dernière modification du modèle? Si cette date est
très récente, comment l'expliques-tu si personne n'ouvre le modèle? Tu crois
aux extra-terrestres? ;-)
Moi, je n'ai jamais encore vu un classeur Excel capable de modifier le nom
des objets tout seul...
MichD
Avatar
ThierryP
Le mercredi 29 novembre 2017 12:51:47 UTC+1, Michd a écrit :
Bonjour.
D'abord, si tu utilises le même modèle pour plusieurs PC et que ces PC sont
en réseau, pourquoi ne pas utiliser un seul modèle que tu dispo ses dans un
répertoire dont tous les utilisateurs ont accès? C'est plus fac ile à
contrôler et à mettre à jour au besoin!

Bonjour Denis,
Toujours présent à ce que je vois !!!
J'aurais préféré cette solution, mais ce modèle est des tiné à des techniciens itinérants, qui n'ont pas toujours ac cès à notre réseau. Donc, ils créent les documents sur leur PC et les transfèrent quand ils ont un accès (Wifi ou 4G).
Le modèle est protégé, mes utilisateurs ne connaissent pas V BA et ne sont pas des "bidouilleurs" en informatique ! Et le pire est que p our l'utilisateur qui me pose problème, ce "bug" n'est pas systém atique... Et je n'arrive ps à savoir quelle manip pourrait faire cet u tilisateur pour arriver à ce résultat; j'ai testé avec lui s ur son PC la création d'un document... et évidemment tout fonctio nnait nickel !
J'ai vérifié, le modèle est à la bonne date (pas de mod if ultérieure enregistrée).
Si il y des extra-terrestres, pourquoi m'en veulent-ils à moi personne llement ??!!!!
Je n'avais encore jamais vu non plus ce type de comportement, mais mon exp érience est loin d'être aussi vaste que la tienne :-))
Je suis prêt à t'envoyer le modèle et un exemple de fichier "modifié" pour que tu puisses te rendre compte par toi-même !
ThierryP
Est-ce possible qu'un utilisateur puisse modifier d'une quelconque mani ère
le modèle volontairement?
Quelle est la date de la dernière modification du modèle? Si ce tte date est
très récente, comment l'expliques-tu si personne n'ouvre le mod èle? Tu crois
aux extra-terrestres? ;-)
Moi, je n'ai jamais encore vu un classeur Excel capable de modifier le no m
des objets tout seul...
MichD
Avatar
Jacquouille
Bonjour Thierry,
Si tes techniciens itinérants ont accès à ton réseau via Wifi, ils
pourraient charger le modèle dont parle Denis...
Ce technicien, victime de Murphy, a-t-il retéléchargé le doc après sa
première mésaventure?
Partie humour:
- n'oubliez jamais Murphy !
- Si "elle s'est fait un bébé toute seule", pourquoi le doc il ne saurait
pas se modifier tout seul?
-))
Bon courage.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"ThierryP" a écrit dans le message de groupe de discussion :
Le mercredi 29 novembre 2017 12:51:47 UTC+1, Michd a écrit :
Bonjour.
D'abord, si tu utilises le même modèle pour plusieurs PC et que ces PC
sont
en réseau, pourquoi ne pas utiliser un seul modèle que tu disposes dans un
répertoire dont tous les utilisateurs ont accès? C'est plus facile à
contrôler et à mettre à jour au besoin!

Bonjour Denis,
Toujours présent à ce que je vois !!!
J'aurais préféré cette solution, mais ce modèle est destiné à des
techniciens itinérants, qui n'ont pas toujours accès à notre réseau. Donc,
ils créent les documents sur leur PC et les transfèrent quand ils ont un
accès (Wifi ou 4G).
Le modèle est protégé, mes utilisateurs ne connaissent pas VBA et ne sont
pas des "bidouilleurs" en informatique ! Et le pire est que pour
l'utilisateur qui me pose problème, ce "bug" n'est pas systématique... Et je
n'arrive ps à savoir quelle manip pourrait faire cet utilisateur pour
arriver à ce résultat; j'ai testé avec lui sur son PC la création d'un
document... et évidemment tout fonctionnait nickel !
J'ai vérifié, le modèle est à la bonne date (pas de modif ultérieure
enregistrée).
Si il y des extra-terrestres, pourquoi m'en veulent-ils à moi
personnellement ??!!!!
Je n'avais encore jamais vu non plus ce type de comportement, mais mon
expérience est loin d'être aussi vaste que la tienne :-))
Je suis prêt à t'envoyer le modèle et un exemple de fichier "modifié" pour
que tu puisses te rendre compte par toi-même !
ThierryP
Est-ce possible qu'un utilisateur puisse modifier d'une quelconque manière
le modèle volontairement?
Quelle est la date de la dernière modification du modèle? Si cette date
est
très récente, comment l'expliques-tu si personne n'ouvre le modèle? Tu
crois
aux extra-terrestres? ;-)
Moi, je n'ai jamais encore vu un classeur Excel capable de modifier le nom
des objets tout seul...
MichD
Avatar
Michd
Si tu as créé plusieurs classeurs avec le modèle sur l'ordinateur de
l'usager et que tous ces fichiers sont corrects, il y a peu de chance que je
trouve un problème aux fichiers que désires m'envoyer. Toi, as-tu pu
observer le phénomène en faisant toi-même les manoeuvres? Dans le cas où la
réponse est négative, demande à l'usager comment il crée un nouveau fichier.
Utilise-t-il toujours la même méthode? Lorsqu'il travaille avec l'un de ces
classeurs, est-ce que d'autres fichiers sont d'ouverts. Pourquoi ne pas lui
demander de te faire un rapport quand la chose se produit en décrivant les
circonstances de l'événement. (nombre de classeurs ouverts, le nom des
autres applications ouvertes, etc...
Tu peux toujours envoyer les 2 fichiers à mon adresse "MichDenis" et "@"
et "Hotmail.com". Cependant, je serais très surpris de pouvoir reproduire le
problème sur mon ordinateur! Je regarderai cela plus tard aujourd'hui.
MichD
Avatar
ThierryP
Bonjour Jacques,
Merci de te pencher sur mon souci !
Dans la mesure où le modèle est le même pour tout le monde, et que ce bug n'est pas systématique et ne se produit que sur un PC, j e ne pense pas que le fait de le télécharger à chaque fois r ésolve le problème..... mais je peux essayer pour cet utilisateur spécifique !
ThierryP
Avatar
Michd
Avant d'envoyer les fichiers, n'oublie pas d'enlever tous les mots de passe
s'il y en a!
MichD
Avatar
Michd
J'ai trouvé un fil de discussion (en anglais) sur la problématique que tu
éprouves. Il semble que la chose existe et par conséquent, tu n'es pas le
seul à éprouver cette difficulté. Selon le site, ton code ne serait pas en
jeu. Voici l'adresse de ce fil. Cette problématique a été relevée seulement
pour les boutons émanant de la barre d'outils "Contrôle" et non pas pour les
boutons de la barre "Formulaire". Peut-être que les suggestions faites
résoudront ton problème.
https://stackoverflow.com/questions/31201980/spurious-change-in-code-name-of-activex-control-command-button
MichD
Avatar
Jacquouille
Salut Denis,
A propos de boutons .....
j'ai cette macro qui me trie (alphabétiquement) admirablement bien les
feuilles d'un dossier.
A partir du moment où je crée un bouton et que je recopie le texte de al
macro dans le code du commandbutton, ben... ça merde.
Erreur d'exécution 9. l'indice n'appartient pas à la sélection.
Moi pas comprendre pourquoi....
Il me liste le nom des feuilles en col A de la feuille "liste".
Du coup, j'ai supprimé le bouton.
---------
Sub TriDesFeuilles()
Dim Sh As Worksheet
Application.ScreenUpdating = False
Sheets.Add.Name = "temp"
For Each Sh In Sheets
If Sh.Name <> "temp" Then
Ctr = Ctr + 1
Cells(Ctr, 1) = Sh.Name
End If
Next Sh
[A:A].Sort Key1:=[A1]
With Sheets("temp")
For i = 1 To Sheets.Count - 1
Sheets(.Cells(i, 1).Value).Move after:=Sheets(i)
Next i
End With
Application.DisplayAlerts = False
Sheets("temp").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
-------------------------
Jacques.
.
"Michd" a écrit dans le message de groupe de discussion :
p03dfr$8pa$
J'ai trouvé un fil de discussion (en anglais) sur la problématique que tu
éprouves. Il semble que la chose existe et par conséquent, tu n'es pas le
seul à éprouver cette difficulté. Selon le site, ton code ne serait pas en
jeu. Voici l'adresse de ce fil. Cette problématique a été relevée seulement
pour les boutons émanant de la barre d'outils "Contrôle" et non pas pour les
boutons de la barre "Formulaire". Peut-être que les suggestions faites
résoudront ton problème.
https://stackoverflow.com/questions/31201980/spurious-change-in-code-name-of-activex-control-command-button
MichD
Avatar
Michd
Bonjour Jacquouille,
Quand tu places le code dans le module du feuille, tu dois obligatoirement
t'assurer que les objets sont bien référencés à la bonne feuille. Dans cet
exemple, si tu n'écris pas que le nom des feuilles est inscrit dans la
feuille Worksheets("Temp"), les noms seront inscrits dans la feuille où est
le bouton de commande. Par conséquent, la feuille "Temp" sera vide. Lorsque
la procédure exécute par la suite la ligne de code suivant "Sheets(.Cells(i,
1).Value).Move after:=Sheets(i)", elle plante, car les cellules de la
feuille temp sont vides et qu'il n'y pas de feuilles portant ce nom.
Quand tu écris du code dans une feuille, à moins de faire la bonne référence
à la feuille où sont les objets et les cellules, ces derniers appartiennent
à la feuille du module du même nom.
'------------------------------------------------------------
For Each Sh In Sheets
If Sh.Name <> "temp" Then
Ctr = Ctr + 1
With Worksheets("temp")
.Cells(Ctr, 1) = Sh.Name
End With
End If
Next
'------------------------------------------------------------
Voici le code corrigé :
'------------------------------------------------------------
Sub TriDesFeuilles()
Dim N As String
Dim Sh As Worksheet
Application.ScreenUpdating = False
Sheets.Add.Name = "temp"
For Each Sh In Sheets
If Sh.Name <> "temp" Then
Ctr = Ctr + 1
With Worksheets("temp")
.Cells(Ctr, 1) = Sh.Name
End With
End If
Next Sh
[A:A].Sort Key1:=[A1]
With Sheets("temp")
For i = 1 To Sheets.Count - 1
N = Worksheets("temp").Cells(i, 1)
Sheets(N).Move after:=Sheets(i)
Next i
End With
Application.DisplayAlerts = False
Sheets("temp").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
'------------------------------------------------------------
MichD
Avatar
Jacquouille
Merci Denis,
j'avais oublié ce .feuil (l'âge).
Bonne soirée
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Michd" a écrit dans le message de groupe de discussion :
p03j3u$ib5$
Bonjour Jacquouille,
Quand tu places le code dans le module du feuille, tu dois obligatoirement
t'assurer que les objets sont bien référencés à la bonne feuille. Dans cet
exemple, si tu n'écris pas que le nom des feuilles est inscrit dans la
feuille Worksheets("Temp"), les noms seront inscrits dans la feuille où est
le bouton de commande. Par conséquent, la feuille "Temp" sera vide. Lorsque
la procédure exécute par la suite la ligne de code suivant "Sheets(.Cells(i,
1).Value).Move after:=Sheets(i)", elle plante, car les cellules de la
feuille temp sont vides et qu'il n'y pas de feuilles portant ce nom.
Quand tu écris du code dans une feuille, à moins de faire la bonne référence
à la feuille où sont les objets et les cellules, ces derniers appartiennent
à la feuille du module du même nom.
'------------------------------------------------------------
For Each Sh In Sheets
If Sh.Name <> "temp" Then
Ctr = Ctr + 1
With Worksheets("temp")
.Cells(Ctr, 1) = Sh.Name
End With
End If
Next
'------------------------------------------------------------
Voici le code corrigé :
'------------------------------------------------------------
Sub TriDesFeuilles()
Dim N As String
Dim Sh As Worksheet
Application.ScreenUpdating = False
Sheets.Add.Name = "temp"
For Each Sh In Sheets
If Sh.Name <> "temp" Then
Ctr = Ctr + 1
With Worksheets("temp")
.Cells(Ctr, 1) = Sh.Name
End With
End If
Next Sh
[A:A].Sort Key1:=[A1]
With Sheets("temp")
For i = 1 To Sheets.Count - 1
N = Worksheets("temp").Cells(i, 1)
Sheets(N).Move after:=Sheets(i)
Next i
End With
Application.DisplayAlerts = False
Sheets("temp").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
'------------------------------------------------------------
MichD