Message erreur VBA

Bonjour,

je fais face à un petit soucis avec ma macro ou ma version Excel, I need help!

Voici mon problème: j'ai créée un fichier Excel avec une macro (voir ci-dessous) qui permet d'ouvrir un formulaire de recherche puis affiche des informations en conséquence.

Ma macro fonctionne parfaitement sur mon ordinateur (Mac 2016) mais il s'avère que lorsque je l'ouvre avec mon autre ordinateur (mac aussi), il s'affiche un message d'erreur! (voir capture d'écran)

A quoi cela peut il etre du?

Mon code VBA de mon Userform:

Private Sub UserForm_Initialize()

With ListBox1

.ColumnCount = 5

.ColumnWidths = "40;140;100;100"

End With

Me.ListBox1.List = Range("Tableau1[[Eligibilité]:[Libellé]]").Value

End Sub

Private Sub TextBox1_Change()

Me.ListBox1.Clear

i = 0

For Each c In Application.Index(Range("Tableau1[[Eligibilité]:[Libellé]]"), , 4)

If UCase(c) Like "*" & UCase(Me.TextBox1) & "*" Then

Me.ListBox1.AddItem

Me.ListBox1.List(i, 0) = c.Offset(0, -3).Value

Me.ListBox1.List(i, 1) = c.Offset(0, -2).Value

Me.ListBox1.List(i, 2) = c.Offset(0, -1).Value

Me.ListBox1.List(i, 3) = c.Offset(0, 0).Value

i = i + 1

End If

Next c

End Sub

Private Sub CommandButton1_Click()

flag = True

For i = 0 To ListBox1.ListCount - 1

If ListBox1.Selected(i) Then

flag = False

End If

Next i

If flag Then

MsgBox "Si l'activité n'apparait pas dans la nomenclature, il est probable qu'il s'agisse d'une activité non éligible. En cas de doute, tu peux solliciter un avis auprès du service micro-assurance: microassurance@adie.org "

Exit Sub

End If

ligne = 4

Range("C" & 3).Value = Me.ListBox1.Column(3)

Range("C" & 4).Value = Me.ListBox1.Column(1)

Range("C" & 5).Value = Me.ListBox1.Column(2)

Range("B" & 7).Value = Me.ListBox1.Column(0)

Me.Hide

Columns("C:C").ColumnWidth = 200

Columns("C:C").EntireColumn.AutoFit

Rows("8:9").EntireRow.AutoFit

End Sub

Code de ma feuille:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("C3")) Is Nothing Then Exit Sub

UserForm.Left = 100

UserForm.Top = 100

UserForm.Show

Columns("C:C").EntireColumn.AutoFit

Rows("8:9").EntireRow.AutoFit

End Sub

capture d ecran 2019 01 18 a 08 48 21

Bonjour Juliak, bonjour le forum,

Trois remarques :

1. Le code c'est bien, mais c'est mieux avec les balises </>...

2. La capture d'écran c'est bien mais indiquer quelle est la ligne qui plante c'est mieux...

3. S'il arrive parfois que l'on puisse dépatouiller un demandeur juste en lisant son code, il est souvent préférable d'avoir le fichier pour pouvoir tester...

Bonjour,

voici le fichier mais celui-ci fonctionne parfaitement sur mon ordi mais pas sur un autre mac alors je ne pense pas que ca va servir à grand chose de vous envoyer un fichier test avec la macro qui fonctionne comme le problème c'est que avec un autre pc le doc ne fonctionne pas..

Re,

Au moins de savoir quelle est la ligne qui plante car tu ne daignes toujours pas nous l'indiquer...

Re,

voici la capture d'écran du message d'erreur (joint) et de la ligne de ma macro qui pose problème (joint).

La macro n'affiche pas de message d'erreur lorsque je clique une fois sur la cellule de champ de recherche e tune fois sur le choix de la liste mais lorsque je clique deux fois sur la cellule puis deux fois sur mon choix de libellé de la liste, là s'affiche le message d'erreur

Merci d'avance

capture d ecran 2019 01 18 a 16 17 17 capture d ecran 2019 01 18 a 16 16 52

Bonjour toutes et tous

coucou ThauTheme

@Juliak

j'avais des mots Eligibilité et Libellé (les accents é & é, en format bizarre dans ton code) et même dans le msg

@ tester ci-joint, (NOTE: aucune idée si pour un MAC cela va fonctionner!!!)

crdlt,

André

Bonjour à tous

Pour André

j'avais des mots Eligibilité et Libellé (les accents é & é, en format bizarre dans ton code) et même dans le msg

Normal sous MAC, le Language machine (UNIX) renvoie des Z,... au lieu de é ou è, etc...

Comme je viens encore de le dire sur un autre fil, avec VBA il faut éviter les accents et cellules fusionnées. A un moment ou un autre il y a toujours un bug.

Pour excel MAC, les activeX ne sont pas admises. C'est encore un truc à Microsoft qui n'aide pas ceux qui utilisent à la fois excel MAC et windows. Cela met le souc à chaque fois. Donc le bouton GO doit être remplacé par un bouton dessiné sur la feuille. Souvent plus joli d'ailleurs (enfin pour moi)

@ tester ci-joint, (NOTE: aucune idée si pour un MAC cela va fonctionner!!!)

Non mais devient Oui si vous supprimez les accents dans le code et dans le tableau (Eligibilite et libelle) et remplacer le bouton GO par un bouton type dessin.

Si besoin je vous mets le fichier

Cordialement

Bonjour toutes et tous,

Merci Dan pour cette information des accents sous MAC (oupss j'aurais du faire attention je l'avais visionné ce fil de discussion arff sry),

et merci également pour le bouton GO (type dessin)

maintenant, je comprend mieux

crdlt,

André

Merci pour vos réponses mais tout ça ne répond pas à mon problème.

Je ne sais toujours pas où est la solution pour que ma macro fonctionne correctement sans message d'erreur..

Re

Je ne sais toujours pas où est la solution pour que ma macro fonctionne correctement sans message d'erreur..

J'ai l'impression que vous n'avez pas lu mon post précédent ... dans lequel je vous dis de supprimer les accents dans "éligibilité" et "libellé"

Sinon, renvoyez le fichier qui ne fonctionne pas sur le MAC et ce, dans l'état où il se trouve.

Ne le poster que si vous avez changé quelque chose.

Si pas de changements, je repartirai du fichier d'André13 pour vérifier.

Je ne vois pas pourquoi le double click déclencherait une erreur sachant qu'il n'y aucun code double click dans l'USF à ce sujet

Bonsoir,

essaye en remplaçant : Range("C" & 3).Value = Me.ListBox1.Column(3)

par : [C3] = ListBox1.List(ligne, 3)

si ça marche :

ligne = 4
[C3] = ListBox1.List(ligne, 3)
[C4] = ListBox1.List(ligne, 1)
[C5] = ListBox1.List(ligne, 2)
[B7] = ListBox1.List(ligne, 0)
Me.Hide

dhany

Re

J'ai vérifié sous MAC votre fichier posté. Pas de souci cela fonctionne très bien et sans bug.

Le problème vient du fait que vous utilisez le fichier à la fois sous windows et sous MAC. Donc, en premier, testez sur base de mes commentaires dans mes posts précédents.

@Dhany :

Range("C" & 3).Value ou [C3] c'est la même chose d'un point de vue VBA. C'est mieux de le signaler je pense.

Plus général, par le passé, on a d'ailleurs constaté que l'annotation crochet ralentissait le code par rapport à Range (je ne retrouve plus le fil test échangé avec Myta et VBANew sur ce forum ce sujet). Pourquoi ? je n'en sais rien mais J. Walkenbach avait aussi mentionné cela dans un de ses livres.

Cordialement

Bonjour,

@ Dan,

[C3] ne renvoie pas directement le résultat de le cellule C3, mais la référence de la cellule C3.

VBA convertit (logiquement) la référence en objet de type Range. Conversion dit calcul !...

Voir la méthode Evaluate.

Cdlt.

Bonsoir Dan et Jean-Eric,

[C3] est effectivement interprété par la fonction Evaluate() comme Range("C3") ; ça ralentit un peu le code VBA, mais seulement si c'est dans une très grande boucle ; et j'suis quand même pas à la demi-seconde près, top chrono !

d'autre part, je m'demande si y'a une différence sensible entre Range("C" & ligne) et Cells(ligne, 3) ; peut-être que c'est plus rapide avec 2 coordonnées numériques séparées qu'avec la concaténation via « & » ? faudrait faire des tests avec le timer comme chrono, mais quand un timer donne des résultats différents avec un même code VBA et les mêmes données, j'me dis qu'il est pas assez précis !


cela dit, mon post précédent était surtout pour remplacer ListBox1.Column(3) par List(ligne, 3) : j'avais pensé que le bug du code VBA de juliak était dû à l'oubli de la ligne, et après l'instruction ligne = 4, juliak n'a pas utilisé sa variable ligne.

dhany

J'ai essayé d'enlever les accents ça n'a pas fonctionner

Je vous remercie quand même pour votre aide

Je crois que c'était lié au mac même..

MErci )

Re

Comme demandé, donnez le fichier qui pose souci. Je ferai un test sur MAC

Quelle est votre version excel MAC ?

Cordialement

Rechercher des sujets similaires à "message erreur vba"