Incompatibilité VBA entre MAC et PC

Bonjour a tous

je relance une demande d'aide concernant un code VBA qui fonctionne a merveille sur le PC d'un ami et qui ne fonctionne pas sur mon Mac

je met le fichier en piece jointe et je vous copie le code VBA.

si quelqu'un peut m'aider ce serait génial

pour info la cellule ou le résultat doit être affiché,indique #VALEUR!

Merci tous pour votre aide....

Option Explicit

Function Rechercher(Nom As Range) As String

Application.Volatile

Dim WsS As Worksheet

Dim Cel As Range, C As Range

Dim Tablo

Dim i As Integer

Dim Valeur As String

Set WsS = Worksheets("Patch DMX")

With Worksheets("Patch Multi")

If Not IsEmpty(Nom) Then

Tablo = Split(Nom, "/")

For i = 0 To UBound(Tablo)

Set C = WsS.Columns(1).Find(Tablo(i), , xlValues, xlWhole)

If Not C Is Nothing Then

Valeur = Valeur & C.Offset(0, 1) & "/"

End If

Next i

Rechercher = Left(Valeur, Len(Valeur) - 1)

Valeur = ""

End If

End With

End Function

Bonjour

Bonjour Jean-Eric

vanvan1968 a écrit :

je relance une demande

Ce n'est pas la bonne méthode

Tant que ton problème initial n'est pas résolu, tu dois rester sur le même post

Surtout il faut répondre aux personnes qui te proposent une solution

https://forum.excel-pratique.com/excel/incompatibilite-vba-mac-et-pc-t70149.html#p400598

bonjour,

je ne sais pas lire des lignes de code donc le lien que l'on m'a fait passer ne me parle pas beaucoup.

je cherche en fait quelqu'un qui pourrait modifier le code que j'ai partagé precedement et qui connaît bien excel pour Mac.

je voudrais bien faire par moi meme mais je ne sais pas ,c'est pour cela que je demande de l'aide.

merci a tous

Bonsoir

C'est tout à fait normal que tu demandes de l'aide

Mais ce message à sa place dans l'autre post

Je n'ai pas de Mac donc je ne pourrais pas t'aider

Sois patient et de temps à autre fait remonter ton post en y inscrivant un message par exemple

bonjour a tous,

je reviens vers vous pour voir si quelqu'un peut m'aider

merci

Bonjour,

ça ne fonctionne pas parce que la fonction SPLIT n'est pas reconnue par le mac...

Autant j'aime excel windows, autant je ne supporte pas excel sur mac

P.

BOnsoir

voici une proposition qui marche sur excel windows et excel MAC

en effet la fonction split n'existe pas nativement dans mac ........ donc j'ai trouvé grace au lien de Jean-eric une fonction split artificielle...

de plus je n'arrive pas a comprendre pourquoi la fonction Find ne marche pas non plus sur mac... j'ai donc fait la recherche autrement....

il y a le test du système d'exploitation pour que la macro fonctionne sur les deux

Si ton tableau des correspondances est amené a changé il faut soit changé dans la macro soit le rendre dynamique mais là j'ai la flemme de le faire car j'ai arrêter ma machine virtuelle mac pour refaire des essais ensuite ....

j'ai aussi corrigé ce qui me semble etre une erreur de fonctionnement quand il y a qu'un chiffre a transposer le resultat état #valeur car il y avait

Rechercher = Left(Valeur, Len(Valeur) - 1)

donc tu renvoiyais rien car on supprime le dernier et seul caractère...

bon tests

Frederic

bonjour Fred2406

j'ai essayé ton fichier qui fonctionne cependant il y a le / qui apparait meme quand il n'y a qu'une machine dans la colone ID,pourquoi?

De plus je veux créer d'autres modules de commande et donc avoir d'autres fonctions personnelles.

suivant comment je les nomme elles ne fonctionnent pas.

j'essaye de me débrouiller par moi meme,mais c'est un peu compliqué a mon gout...

je t'envoie un fichier exemple

merci pour le temps que tu m'accordes

13socas-affect.xlsm (64.30 Ko)

bonsoir

j'ai resolu l'histoire du "/" a la fin... mais pour le reste c'est une peu plus coton....

une question dans ton fixture tu ne peux avoir qu'un seul type ?? et dans ce cas il faut simplement compter le nombre d'elements ou il peut y avoir tout et n'importe quoi par exemple : Viper Perf/Viper Perf/Mole 4/Viper Perf/Mole 4/FL 1300 ???

meme chose pour Line ???

pour AMP et Wheight pas compris....

fred

Bonsoir,

-Dans FIXTURE il peut y avoir plusieurs type et je souhaite que ca affiche pour ton exemple:

Viper Perf/Viper Perf/Mole 4/Viper Perf/Mole 4/FL 1300 .....> 3 Viper Perf / 2 Mole 4 / 1 FL 1300

- Dans LINE il peut y avoir plusieurs univers et je souhaite éviter les doublons

-Dans WEIGHT s'il y a 2 Viper il faut que ca calcule le poids total des projecteurs de la cellule FIXTURE

-AMP même chose....

Merci pour ces réponses aussi rapides

BOnjour

bon j'ai fini le fichier qui fonctionne sous windows.... mais problème j'utilise des dictionnaires et évidemment cela ne fonctionne pas sur mac....

j'ai trouvé sur le site de boisgontierjacques quelque chose qui pourrais etre utilisé pour déclarer un dictionnaire sous mac

http://boisgontierjacques.free.fr/pages_site/Dictionnaire.htm#SimulDictMac

Problème cela fait deux heures que j'essaye de faire fonctionner cela sur ma machine virtuelle et elle plante très régulièrement quand j'essaye de faire la déclaration du dictionnaire sur MAC

j'ai déjà mis le module classe dans le fichier

a voir donc

je ne peux plus m'occuper de cela... j'ai jamais fait et c'est pas très facile avec ma machine virtuelle....

il faut donc voir les deux fonctions rechercher typ et DMX...

sinon voir si quelqu'un propose une autre solution pour faire ce que tu demande sans utiliser les dictionnaires..

fred

13socas-affect2.xlsm (64.22 Ko)

Un grand merci pour ton aide,je vais essayer de trouver quelqu'un qui a un mac.

@+

Bonjour

Je regardes un peu ce sujet et je voudrais savoir

Si dans ID on a 21/23/21/203/203/999/21

Est ce possible (plusieurs fois le même numéro-des numéros inexistants) ?

Si oui quels seraient les résultats pour FIXTURE, LINE, ADDRESS, AMP et WEIGHT ?

Si non comment traiter ces cas ?

En plus avant d'aller plus loin il faudrait tester ce code pour savoir si compatible ou pas

Remplace la fonction existante par celle-ci

Function RechercheTYPE(Nom As Range) As String
Dim I As Integer, J As Long, K As Integer, Indice As Integer
Dim TabloSource, TabloFixture(), Tablo
Dim WsS As Worksheet
Dim Msg As String

  Application.Volatile
  Set WsS = Worksheets("PATCH")
  TabloSource = WsS.Range("B2:E" & WsS.[B65536].End(xlUp).Row)
  If Not IsEmpty(Nom) Then
    Tablo = SplitFor97(CStr(Nom), "/")
    For I = 1 To UBound(Tablo)
      For J = 1 To UBound(TabloSource)
        If TabloSource(J, 1) Like Tablo(I) Then
          For K = 1 To Indice
            If TabloFixture(2, K) = TabloSource(J, 2) Then
              TabloFixture(1, K) = TabloFixture(1, K) + 1
              Exit For
            End If
          Next K
          If K > Indice Then
            Indice = Indice + 1
            ReDim Preserve TabloFixture(1 To 2, 1 To Indice)
            TabloFixture(1, Indice) = 1
            TabloFixture(2, Indice) = TabloSource(J, 2)
          End If
          Exit For
        End If
      Next J
    Next I
  End If
  For I = 1 To Indice
    Msg = Msg & "/" & TabloFixture(1, I) & " " & TabloFixture(2, I)
  Next I
  RechercheTYPE = Mid(Msg, 2)

End Function

Ensuite rajoutes cette fonction

'from Tom Ogilvy
Function SplitFor97(sStr As String, sdelim As String) As Variant
  SplitFor97 = Evaluate("{""" & _
      Application.Substitute(sStr, sdelim, """,""") & """}")
End Function

Parce si ce n'est pas compatible, ce n'est plus la peine que je continue

.

Bonjour

bonjour banzai

je vais regardé de plus près ta macro, mais la fonction split2 marche très bien sur mac, et spli pour windows ...

je vais voir comment tu as fait pour compter le nombre occurrences,... demain .....

a+

fred

Bonjour

J'ai (re) trouvé cette fonction au fond d'un tiroir

Peut être à t'elle l'avantage de fonctionner sur les 2 plateformes, vanvan1968 va le dire

Wait .....

Bonjour a vous

je viens de récupérer les fonctions de Banzai64 qui fonctionnent à merveille

un grand merci a vous 2 car vous avez fait un grand pas dans mon dossier

Encore quelques petits problèmes au niveau de la colonne LINE qui affiche #VALEUR

pour répondre a vos questions:

non il ne peut pas y avoir 2 fois le même numéro dans ID

au niveau de LINE j'ai mis une annotation dans le fichier joint

on est encore loin du but car j'ai encore pas mal de fonction de recherche à mettre en place mais on (vous) progresse(z) bien

encore bravo

MERCI

7socas-affect2.xlsm (64.90 Ko)

Bonjour,

loin de moi de me mêler de ces très bons codes, mais j'ai testé sur un mac et avec SPLITFor97 , ça fonctionne il semble; d'autre part pour la colonne LINE , ça apparaît dans le désordre sauf si tu tries ta base de données PATCH, alors çavient dans le bon ordre.

P.

Bonjour Patrick 1957

toutes les réflexions sont les bienvenues.

dans mon fichier sur mon mac la colonne LINE affiche bien #VALEUR

je viens de modifier la fonction RechercheUNIVERS en copiant une partie de la fonction rechercheDMX et ca fonctionne par contre ca m'affiche des doublons au niveau des Univers

Je voudrais que ca fasse si possible si : 2MAC AURA sur le meme UNIVERS que ca me mette q'une fois l'univers et non pas x/x

mais on progresse encore....

merci a toi aussi pour ta pierre a l'édifice

en copie ce que je viens de modifier

Function RechercheUNIVERS(Nom As Range) As String

Application.Volatile

Dim WsS As Worksheet

Dim Cel As Range, C As Range

Dim Tablo

Dim Tablo_source

Dim I, J As Integer

Dim Valeur As String

Set WsS = Worksheets("PATCH")

Tablo_source = WsS.Range("B2:E" & WsS.[B65536].End(xlUp).Row)

With Worksheets("B6")

If Not IsEmpty(Nom) Then

'test le systeme d'exploitation

If isMactest Then

Tablo = Split2(Nom, "/")

Else

Tablo = Split(Nom, "/")

End If

On Error Resume Next

For I = 0 To UBound(Tablo)

For J = 1 To UBound(Tablo_source)

If Tablo_source(J, 1) Like Tablo(I) Then

Valeur = Valeur & Tablo_source(J, 3) & "/"

Exit For

End If

Next

Next I

On Error GoTo 0

If Right(Valeur, 1) = "/" Then

RechercheUNIVERS = Left(Valeur, Len(Valeur) - 1)

Else

RechercheUNIVERS = Valeur

End If

End If

End With

End Function

Bonjour

Avec 99% du code de fred2406

A tester

Rechercher des sujets similaires à "incompatibilite vba entre mac"