Partager via

Macro dans Excel VBA ne fonctionne plus avec la version 1117 de VBA

Anonyme
2022-02-06T02:16:42+00:00

Bonjour à vous tous,

J'ai une macro dans Excel VBA que j'utilise depuis des décennies. Elle sert à convertir la valeur numérique d'une colonne en sa valeur alphabétique. Tout à coup elle me retourne une réponse nulle (vide). J'ai essayé toutes les solutions imaginables et inimaginables et rien n'y fait.

J'ai sur mon portable Windows 10 Famille 64 bits version 20H2, version du S.E. 19042.1466 et Office 365 avec Microsoft® Excel® pour Microsoft 365 MSO (Version 2112 Build 16.0.14729.20224) 32 bits1117. J'avais la version 64 bits et j'ai rétrogradé dernièrement à la version 32 bits, car plusieurs boutons de commande ActiveX ne fonctionnaient plus.

J'ai une tablette Surface 3 avec la version 32 bits 1116 et la macro fonctionne très bien sur celle-ci.

Je crois certainement qu'il y a une relation avec la rétrogradation de version d'Excel, ou entre une mise à jour vers la version 1117 versus la version 1116.

J'ai exécuté la réparation rapide d'Office dans « Paramètres », « Applis » et cela n'a rien changé.

J'ai ensuite exécuté la réparation complète en ligne d'Office dans « Paramètres », « Applis » et cela n'a rien changé.

J'ai maintenant la version d'Office 365 Microsoft® Excel® pour Microsoft 365 MSO (Version 2201 Build 16.0.14827.20028) 32 bits et la version de VBA 1118.

Mon petit bout de code est listé ici-bas. Rien de compliqué.

Au premier « Stop » la variable A contient la chaîne "A". C'est normal.

Au deuxième « Stop », la variable A devrait contenir la chaîne "AJ". Eh! bien non, la variable est vide.

Et ensuite la variable A ne veut plus accepter l'ajout d'aucune chaîne, sauf si on la réinitialise, mais toujours pas "AJ".

Quelqu'un a-t-il eu vent d'un problème similaire ou d'une réponse de Microsoft sur le sujet.

Merci à l'avance,

Christian

Private Sub TestTest()

Dim A As String, Z(1 To 3) As Integer 

A = "" 

Z(1) = 10 

Z(2) = 1 

Z(3) = 0 

If Z(3) > 0 Then 

    A = Chr(64 + Z(3)) 

End If 

If Z(2) > 0 Then 

    A = A + Chr(64 + Z(2)) 

End If 

Stop '(Contenu normal dans la variable A)

A = A + Chr(64 + Z(1)) 

Stop '(Surprise, la variable est vide)

 A = A + "AI" 

Stop 

A = A + "AJ" 

Stop 

A = A + "AK" 

Stop 

A = "AJ" 

Stop 

A = "AI" 

Stop 

A = "AJ" 

Stop 

A = "AK" 

Stop 

End Sub

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
{count} votes

4 réponses

  1. Anonyme
    2022-02-11T03:52:38+00:00

    Je crois que le problème provient d'une mise-à jour incomplète ou interrompue.

    Finalement, après une dizaine de redémarrage de l'ordinateur cela fonctionne.

    La variable A contient bien "AJ", mais lorsque l'on passe la souris au-dessus de la variable en mode pause, VBA indique une variable vide.

    J'espère que ça pourra aider d'autres qui auront peut-être ce même problème.

    Jamais vu un problème semblable.

    J'utilise VB d'avant sa naissance et même ses ancêtres auparavant.

    Christian

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2022-02-06T19:39:11+00:00

    J'ai la même version VBA que toi. Je n'ai pas la même version d'Excel, mais Excel n'intervient pas dans ce cas :

    Daniel

    0 commentaires Aucun commentaire
  3. Anonyme
    2022-02-06T09:20:31+00:00

    Merci Daniel.

    Mais un ou l'autre (+ ou &), ça ne fonctionne pas.

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2022-02-06T09:13:00+00:00

    Bonjour,

    Je m'étonne que ça ne provoque pas d'erreur. Tu devrais mettre :

    A = A & Chr(64 + Z(1))

    au lieu de

    A = A + Chr(64 + Z(1))

    Cordialement.

    Daniel

    0 commentaires Aucun commentaire