IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Microsoft Excel vers Mac Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Retraite
    Inscrit en
    Juillet 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraite

    Informations forums :
    Inscription : Juillet 2016
    Messages : 9
    Par défaut Microsoft Excel vers Mac Excel
    Je tente d'utiliser une feuille de calcul créée sur Microsoft Excel 2011 sur un Mac avec la version Excel Mac 2011.

    J'ai réussi à faire fonctionné toutes les célules et les macros sauf cette commande en visual basic:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("E12")) Is Nothing Then
    SendKeys "{TAB}"
    Call MacroE12
    End If
    Je ne trouve pas l'équivalent de "Sendkeys" sur Mac Excel.

    Quelqu'un peut-il m'aider?

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    conseiller
    Inscrit en
    Janvier 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : conseiller
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 367
    Par défaut
    Je n'ai pas de version Mac donc je ne peux tester mais si j'en crois ce qui est dit ici, peut-être comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MacScript ("tell application " & Chr(34) & "System Events" & Chr(34) & " to keystroke " & Chr(34) & "{TAB}" & Chr(34))
    A+

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir ici ?

  4. #4
    Membre du Club
    Homme Profil pro
    Retraite
    Inscrit en
    Juillet 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraite

    Informations forums :
    Inscription : Juillet 2016
    Messages : 9
    Par défaut
    Citation Envoyé par davido84 Voir le message
    Je n'ai pas de version Mac donc je ne peux tester mais si j'en crois ce qui est dit ici, peut-être comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MacScript ("tell application " & Chr(34) & "System Events" & Chr(34) & " to keystroke " & Chr(34) & "{TAB}" & Chr(34))
    A+

    Merci beaucoup; cette partie semble fonctionner..... mais ça bloque à l'instruction suivante de la macro:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub MacroH12()
      If Worksheets("xxx").Range("H12").Value = "x" Then
        Exit Sub
      End If
      Worksheets("xxx").Range("I12") = Worksheets("xxx").Range("H12")
    End Sub
    Merci à l'avance

  5. #5
    Membre émérite
    Homme Profil pro
    conseiller
    Inscrit en
    Janvier 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : conseiller
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 367
    Par défaut
    Merci beaucoup; cette partie semble fonctionner..... mais ça bloque à l'instruction suivante de la macro:
    Quelle ligne ? Vérifie que le nom des feuilles soit bien orthographié.

  6. #6
    Membre du Club
    Homme Profil pro
    Retraite
    Inscrit en
    Juillet 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraite

    Informations forums :
    Inscription : Juillet 2016
    Messages : 9
    Par défaut
    Désolé si je ne vous ai pas répondu avant; j'ai dû m'absenter quelques jours.

    Voici mon premier code VLA qui semble fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("E12")) Is Nothing Then
    MacScript ("tell application " & Chr(34) & "System Events" & Chr(34) & " to keystroke " & Chr(34) & "{TAB}" & Chr(34))
    Call MacroE12
    End If
    et voici la macroE12:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub MacroE12()
     If Worksheets("LB").Range("E12").Value = "X" Then
        Exit Sub
      End If
      ThisWorkbook.Worksheets("LB").Select
      Sheets("LB").Range("F12").Value = Sheets("LB").Range("E12").Value
     
    End Sub
    Sous Windows7, lorsque je donnais la valeur 3 à la célule E12, la célule F12 prenait aussi la valeur 3.

    Ensuite, si je donnais la valeur "x" à la célule E12, la valeur 3 demeurait à la célule F12.

    En fait je désire conserver l'ancienne valeur de E12 dans F12 même après que j'ai donné une valeur "x" à E12.

    Maintenant sur le Mac, la valeur de E12 est bien copiée sur F12, mais lorsque je mais la célule E12 à "x",
    la célule F12 devient "x".

    Merci à l'avance pour toute suggestion.

  7. #7
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonsoir,

    2 solutions :
    soit utiliser en haut du module avant toutes macros : Option Compare text
    ou utiliser un Or dans le If (cf ligne 4 en commentaire)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Compare text '
     
    Sub MacroE12()
        If Worksheets("LB").Range("E12").Value = "X" Then 'If Worksheets("LB").Range("E12").Value = "X" Or Worksheets("LB").Range("E12").Value = "x" Then
            Exit Sub
        End If
        Sheets("LB").Range("F12").Value = Sheets("LB").Range("E12").Value
        Application.Goto Sheets("LB").Cells(12, 6)
    End Sub
    Forcément si tu lui demande un X majuscule dans le if et tu lui mets un x minuscule la macro continuera et changera ta valeur

    Pour info je suis tombé sur ceci qui peut en intéressé plus d'un; si vous testez je veux bien un retour. Merci
    'Try using:
    'MacScript ("tell application " & Chr(34) & "System Events" & Chr(34) & " to key code 7") 'this will type the letter "x"
    ' I use this for my validation dropdown lists to automate the dropdown action when the cell is clicked:
    'MacScript ("tell application " & Chr(34) & "System Events" & Chr(34) & " to key code 126 using option down")
    'You can also use the "Control", "Command" & "Option" Keys:
    'tell application "System Events" to keystroke "f" using {control down, command down, option down}

    'Key Code numbers are as follows:
    '0 = a
    '1 = s
    '2 = d
    '3 = f
    '4 = h
    '5 = g
    '6 = z
    '7 = x
    '8 = c
    '9 = v
    '10 = ISO_Section
    '11 = b
    '12 = q
    '13 = w
    '14 = e
    '15 = r
    '16 = y
    '17 = t
    '18 = 1
    '19 = 2
    '20 = 3
    '21 = 4
    '22 = 6
    '23 = 5
    '24 = (Equal)
    '25 = 9
    '26 = 7
    '27 = (Minus)
    '28 = 8
    '29 = 0 (number 0)
    '30 = (RightBracket)
    '31 = o (letter "o")
    '32 = u
    '33 = (LeftBracket)
    '34 = i (Letter "eye")
    '35 = p
    '36 = (Return)
    '37 = l (Letter "el")
    '38 = j
    '39 = (Quote)
    '40 = k
    '41 = (Semicolon)
    '42 = (Backslash)
    '43 = (Comma)
    '44 = (Slash)
    '45 = n
    '46 = m
    '47 = (Period)
    '48 = (Tab)
    '49 = (Space)
    '50 = ANSI_Grave
    '51 = (Delete)
    '53 = (Escape)
    '55 = (Command)
    '56 = (Shift)
    '57 = (CapsLock)
    '58 = (Option)
    '59 0x3B Control
    '60 0x3C RightShift
    '61 0x3D RightOption
    '62 0x3E RightControl
    '63 0x3F Function
    '64 0x40 F17
    '65 0x41 ANSI_KeypadDecimal
    '67 0x43 ANSI_KeypadMultiply
    '69 0x45 ANSI_KeypadPlus
    '71 0x47 ANSI_KeypadClear
    '72 0x48 VolumeUp
    '73 0x49 VolumeDown
    '74 0x4A Mute
    '75 0x4B ANSI_KeypadDivide
    '76 0x4C ANSI_KeypadEnter
    '78 0x4E ANSI_KeypadMinus
    '79 0x4F F18
    '80 0x50 F19
    '81 0x51 ANSI_KeypadEquals
    '82 0x52 ANSI_Keypad0
    '83 0x53 ANSI_Keypad1
    '84 0x54 ANSI_Keypad2
    '85 0x55 ANSI_Keypad3
    '86 0x56 ANSI_Keypad4
    '87 0x57 ANSI_Keypad5
    '88 0x58 ANSI_Keypad6
    '89 0x59 ANSI_Keypad7
    '90 0x5A F20
    '91 0x5B ANSI_Keypad8
    '92 0x5C ANSI_Keypad9
    '93 0x5D JIS_Yen
    '94 0x5E JIS_Underscore
    '95 0x5F JIS_KeypadComma
    '96 0x60 F5
    '97 0x61 F6
    '98 0x62 F7
    '99 0x63 F3
    '100 0x64 F8
    '101 0x65 F9
    ''102 0x66 JIS_Eisu
    '103 0x67 F11
    '104 0x68 JIS_Kana
    '105 0x69 F13
    '106 0x6A F16
    '107 0x6B F14
    ''109 0x6D F10
    '111 0x6F F12
    '113 0x71 F15
    '114 0x72 Help
    '115 0x73 Home
    '116 0x74 PageUp
    '117 0x75 ForwardDelete
    '118 0x76 F4
    '119 0x77 End
    '120 0x78 F2
    '121 0x79 PageDown
    '122 0x7A F1
    '123 0x7B LeftArrow
    '124 0x7C RightArrow
    '125 0x7D DownArrow
    '126 0x7E UpArrow
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  8. #8
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    A Ryu
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Ucase(Worksheets("LB").Range("E12").Value) = "X" Then
    ...
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  9. #9
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Hi,
    Bien vu casefayere ça ne m'était pas venu à l'esprit
    C'est plus simple !
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  10. #10
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Re @aietoe,
    Est ce que cela vous convient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Application.Goto Range(Split(Target.Address, "$")(1) & Rows.Count).End(xlUp)(2)
    End Sub
    à mettre dans ThisWorbook
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  11. #11
    Membre du Club
    Homme Profil pro
    Retraite
    Inscrit en
    Juillet 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraite

    Informations forums :
    Inscription : Juillet 2016
    Messages : 9
    Par défaut
    Désolé messieurs, mais je ne comprends pas votre solution. Je répète ma question:

    Comment faire pour sauter immédiatement à la prochaine cellule après avoir entrer une donnée.

    Dans une cellule, j'entre une valeur entre 0 et 9 et j'aimerais sauter automatiquement à la prochaine cellule libre aussitôt après avoir entrer le chiffre.

    Merci

  12. #12
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Avez vous essayé ?
    c'est une macro évènement qui lors d'une modification dans une cellule de la feuille, va sur la 1è cellule vide après la dernière donnée d'une même colonne.
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  13. #13
    Membre du Club
    Homme Profil pro
    Retraite
    Inscrit en
    Juillet 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraite

    Informations forums :
    Inscription : Juillet 2016
    Messages : 9
    Par défaut
    Bonjour,

    J'ai mis le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Application.Goto Range(Split(Target.Address, "$")(1) & Rows.Count).End(xlUp)(2)
    End Sub
    dans ThisWorkbook

    et lorsque j'entre "1" dans la cellule D12, je doit quand même utiliser le TAB ou la flèche droite pour aller à la cellule suivante et je me retrouve à la cellule D47 !!!

    Qu'est-ce que je fais d'incorrect?

Discussions similaires

  1. [AC-2007] Exporter une table vers Excel et d'Excel vers une table
    Par kapkiller dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/02/2015, 23h08
  2. [XL-2010] Export données Excel vers table Microsoft Sql Server
    Par Lucas G dans le forum Excel
    Réponses: 1
    Dernier message: 17/08/2013, 13h18
  3. [Toutes versions] Importation champ Excel vers champ Excel !
    Par tiyo76 dans le forum Excel
    Réponses: 4
    Dernier message: 07/06/2013, 11h09
  4. Lien vers fichier Excel à ouvrir sous Excel
    Par BILLANT dans le forum SharePoint
    Réponses: 1
    Dernier message: 12/06/2009, 10h05
  5. [EXCEL/C#] Piloter Excel XP compatible Excel 2003 ?
    Par legillou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/08/2006, 08h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo