RowSource sur MAC

Bonjour,

je fait un fichier client que je construit sur Windows et quand je le test sur une VM Mac j'ai une erreur avec RowSource.

Ce fichier sera utilisé sur MAC.

Private Sub UserForm_Initialize()
With Sheets("BDDClient")
    Cbx_Client.RowSource = "BDDClient!" & .Range(.Range("B2"), .Range("B2").End(xlDown)).Address
End With
End Sub

Savez-vous comment palier à ce souci ?

Merci.

Salut Tespark,

Je crois que cette propriété n'est pas disponible sur mac.

Peux-tu essayer ainsi :

Private Sub UserForm_Initialize()
With Sheets("BDDClient")
    t = .Range(.Range("B2"), .Range("B2").End(xlDown))
    Cbx_Client.List() = t
End With
End Sub

Cdlt,

Bonjour 3GB,
Merci pour ta réponse.

J'utilise sur toutes les userfroms Option Explicit, pour bien déclarer toutes mes variables.
J'ai donc déclaré t en long mais cela renvoi une erreur.
J'ai tenté avec integer, range et string, mais idem.
Je me suis dit, mais c'est pas possible ! J'ai enfin tenté avec Variant et cela fonctionne parfaitement.

Variant = Tout type de données

Étonnant tout de même, car avec Long cela aurait du fonctionner, non ?
Serais-tu m'expliquer pourquoi ?

En tout merci cette méthode fonctionne très bien sous MAC

Private Sub UserForm_Initialize()
Dim t As Variant
With Sheets("BDDClient")
    t = .Range(.Range("B2"), .Range("B2").End(xlDown))
    Cbx_Client.List() = t
End With
End Sub

Bonjour Tespark,

Désolé pour ces essais infructueux

En fait, il s'agit d'une variable tableau, récupérant les valeurs de B2 à Bfin, et alimentant ensuite la liste des valeurs de la combobox. Ca n'aurait donc pas marché avec les autres types que variant mais ça aurait fonctionné en déclarant t comme un array : dim t().

Cdlt,

Merci pour ces explication et soit pas désolé c'est déjà d'avoir une solution proposée, cela me fait chercher.

Par contre si je déclare Dim t() cela me renvoi une d'incompatibilité de type.

Je laisse donc avec Variant , merci

3GB, si tu repasses dans le coin je rencontre un autre souci.

depuis cette userform qui fonctionne très avec ma liste déroulante tel que tu me l'a indiqué, je rencontre un souci.

Depuis cette userform je lance une autre userform qui a également une liste déroulante.

J'ai donc appliqué pour cette deuxième liste déroulante :

Private Sub UserForm_Initialize()
Dim tel As Variant
With Sheets("BDDEmailTel")
    tel = .Range(.Range("B2"), .Range("B2").End(xlDown))
    Cbx_Modif_EmailTel() = tel
End With
End Sub

Mais j'ai ceci en retour :

2020 12 13 141756

A priori il te manque juste le mot List :

Cbx_Modif_EmailTel.List() = tel

S'il s'agit bien d'une combobox ! car le contrôle que je vois à l'image ressemble plutôt à un bouton. Ce qui voudrait dire que le click sur ce bouton déclencherait l'alimentation d'une seconde combobox que je ne vois pas à l'écran (mais qui de toute façon ne pourrait pas avoir la même source de données que la 1ère car celle-ci contient des dénominations sociales et non des numéros ou des mails)...

Oui sur l'image que tu vois la combo est en haut et c'est quand je clique sur le bouton cela ouvre une autre userform qui contient également une combo (oui dans l'image j'ai liste).

Désolé pour cet oubli .list

Je suis dégouté, j'ai fait ce travail depuis Windows sur ses userform et je viens de voir que Excel pour MAC ne gère plus les userforms depuis 2016.

J'avais un souci d'affichage d'image (que j'ai caché dans l'image de mon dernier post, logo entreprise) et en voulant ouvrir un userform sur ma VM MAC, impossible.

Idem défaut d'affichage pour certains label !

Ah mince alors ! Du coup, tu vas tout recommencer sur feuille ? C'est un projet perso ou tu le fais pour le compte ou à la demande de quelqu'un ?

De toute façon, les userforms sur mac, c'est pas vraiment l'idéal et perso, je trouve que quand on peut éviter, autant faire des formulaires sur feuille directement. L'essentiel peut être reproduit tout aussi bien, c'est plus rapide, il y a moins de contraintes...

Et le bon côté, c'est que tu pourras avoir un formulaire encore plus beau qu'il ne l'était .

Bonjour,

Je suis dégouté, j'ai fait ce travail depuis Windows sur ses userform et je viens de voir que Excel pour MAC ne gère plus les userforms depuis 2016.

Je viens sur un fil résolu mais en le lisant, sachez qu'avec excel 2011 MAC (si vous l'avez), cela peut fonctionner.

Sinon vous pouvez aussi conserver votre userfom si excel Windows et passer sur feuille pour MAC. Comme 3GB vous a dit on peut aussi faire de belles présentations et ce sera même plus rapide.

Cordialement

Bonjour

J’arrive à faire ce que je veux avec mes userform depuis Windows, mais je glisse régulièrement sur ma VM MAC pour voir le rendu et donc j'ajuste au fil du travail.

Bizarrement sur MAC les formes des images et couleurs des boutons changent. Comme les labels par exemple, je suis obligé de laisser des espaces après chaque mots car le label et rogner. Mais bon je m'adapte.

Je fais ce travail pour mon épouse et donc pour son entreprise. Gestion client, création des BL et factures.

Faire des formulaires sur feuille avec une belle présentation ? Il faut que je fouine et que je regarde de plus prêt cette suggestion.

Merci pour vos conseils.

Bonjour

Bizarrement sur MAC les formes des images et couleurs des boutons changent. Comme les labels par exemple, je suis obligé de laisser des espaces après chaque mots car le label et rogner. Mais bon je m'adapte.

Non c'est normal car le système MAC est basé sous Unix. Vous pouvez adapter en agrandissant via la fonction Zoom (mettre + 30% à peu près)

Faire des formulaires sur feuille avec une belle présentation ? Il faut que je fouine et que je regarde de plus prêt cette suggestion.

Ci-dessous 1 exemple de fichier :

https://www.excel-pratique.com/fr/telechargements/utilitaires/excel-formulaire-no438

Bonjour, merci pour ces réponses et solutions.

J’ai testé la solution formulaires sur feuille et oui je vois bien que le résultat est quasi identique.

2020 12 18 210144

Par contre cette solution des 130% m'intéresse beaucoup vu que préfère voir des userforms s'ouvrir.

Même si je masque l'affichage colonne et lignes et bien sur les différentes feuilles, ce qui rend le formulaire sympa, j'aime bien avoir des ouvertures extérieurs, soit avec ces userforms.

Savez-vous si je peux via le VBA demander à excel : Si OS Mac, j'applique un zoom à 130 % ?

Cela serait super intéressant car je pourrais continuer ce développement sur Windows sans me soucier de MAC (pour la mise en forme).

Merci pour ces échanges .

Bonjour,

J'ai trouvé ce sujet ou Dan donne la solution pour passer de Windows à MAC et avec le zoom

https://forum.excel-pratique.com/viewtopic.php?t=120074

Cela marche parfaitement sur ma VM et j'ai placé le zoom à 1.35.

Private Sub Workbook_Open()
Dim valeur As Byte
valeur = 100
Application.ScreenUpdating = False
'Affichage_Zoom_suivant_plateforme()
    'Tester la constante #Mac
    #If Mac Then
    'si Mac
    ActiveWindow.Zoom = valeur * 1.35
    #Else
    'si PC
    ActiveWindow.Zoom = valeur
    #End If
Application.ScreenUpdating = True
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim valeur As Byte
valeur = 100
Application.ScreenUpdating = False
'Affichage_Zoom_suivant_plateforme()
    'Tester la constante #Mac
    #If Mac Then
    'si Mac
    ActiveWindow.Zoom = valeur * 1.35
    #Else
    'si PC
    ActiveWindow.Zoom = valeur
    #End If
Application.ScreenUpdating = True
End Sub

Pour les userforms j'ai essayé de rajouté ceci dans l'UF,

Private Sub UserForm_Activate()
    Dim Taux As Byte
    Taux = 100
    Application.ScreenUpdating = False
    #If Mac Then
    'si Mac
    Me.Zoom = Taux * 1.35
    #Else
    'si PC
    Me.Zoom = Taux
    End If
End Sub

mais j'ai ceci ?

2020 12 19 080847

Pourtant mon End If est bien présent.

Merci de me dire si je dois ouvrir un nouveau sujet car plus rien à voir avec ma demande de RowSource.

Bonjour

Jolie la feuille de saisie ! Vraiment pro cela

Utilisez plutot ceci -->

If Application.OperatingSystem Like "Win*" Then
'instruction windows
Else :
'instructions mac
End if

ou

If Application.OperatingSystem Like "*Mac*" Then
'instruction mac
Else :
'instructions windows
End if

exemple ici --> https://forum.excel-pratique.com/s/goto/194740

Pour le Zoom c'est ok.

Si besoin dites moi

Bonjour Dan et merci pour ces échanges.

Merci également pour le compliment de la feuille de saisie

Pour l'userform j'ai ceci et ça fonctionne très bien. Mais maintenant j'hésite suite au conseil de 3GB et de vous de rester sur le formulaire feuille

En tout milles merci à vous deux .

Private Sub UserForm_Activate()
    Dim Taux As Byte
    Taux = 100
    Application.ScreenUpdating = False
    If Application.OperatingSystem Like "*Mac*" Then
    'si Mac
    Me.Zoom = Taux * 1.3
    Me.Width = 444 * 1.3
    Me.Height = 672 * 1.3
    Else:
    'si PC
    Me.Zoom = Taux
    End If
    Application.ScreenUpdating = True
End Sub

Re,

Mais maintenant j'hésite suite au conseil de 3GB et de vous de rester sur le formulaire feuille

Je ne suis pas sur d'avoir compris. Vous hésitez pourquoi puisque avec excel MAC 2016, vous n'aurez pas d'userform disponibles

Re Dan

Non, j'hésitais entre la feuille et l'userform, mais ayant eu le temps de travailler aujourd’hui, je compile les deux (selon les désirs de madame ).

J'ai pas mal avancer aujourd'hui sur le rendu et cela grâce à vos conseils.

Le fait qu'excel 2016 sur Mac ne permet plus la création et la modification du rendu des UFs, je peux toujours les travailler depuis le code via Mac, et si modification (graphique) je fais via Windows. Cette remarque était juste pour dire que vos réflexions m'ont fait réfléchir sur l'évolution de ce travail.

Au final je compile les deux, UF et Feuilles. Un travail super intéressant et je reviendrais surement vers vous pour vous solliciter si je galère trop dans le codage.

Je peaufine le rendu, car j'aime que cela donne envie. Pour le moment mon seul frein est la couleur des boutons des UFs, qui sur Mac ne fonctionne pas.

Mais franchement c'est un détail.

Si je galère trop sur ce sujet je reviendrais vous solliciter.

Milles merci à vous Dan et 3GB

Le fait qu'excel 2016 sur Mac ne permet plus la création et la modification du rendu des UFs, je peux toujours les travailler depuis le code via Mac, et si modification (graphique) je fais via Windows. Cette remarque était juste pour dire que vos réflexions m'ont fait réfléchir sur l'évolution de ce travail

Ok mais juste des choses à considérer. Attention aux Activex qui ne fonctionnent pas sous MAC. Donc pour les boutons il vaut mieux prendre une image comme je le vois dans l'image postée.

Pour Rowssource, je conseille toujours de ne pas l'utiliser. Cela peut aussi poser des soucis sous Windows.

Faut aussi vérifier que les userform utilisées pour windows ne sont pas endommagées en cas d'ouverture de ce fichier en enregistrement sous MAC. Je ne pense pas mais sait-on ce jamais.

Rechercher des sujets similaires à "rowsource mac"