Macro Excel 4 en VBA

Salut a tous, je recherche un moyen facile de transférer mes macros Excel 4 en VBA quelqu'un peut il m'aider ?

Question 1 "=RECHERCHER.SELECTION(EQUIPE.1;2;2;1;1;FAUX)" comment on fait ?

Question 2 Nommez un endroit précis pour pouvoir y mettre une fin ou le lancement autres macros ?

Question 3 "=SELECTIONNER("LC:L(21)C")" comment on l'obtient ?
Question 4 =SELECTION.ATTEINDRE("LC")

=SELECTION.ATTEINDRE("LC(-5):L(1)C(-1)")
=SELECTION.ATTEINDRE("LC:LC(1)")

Merci de me répondre et si vous ne savez pas me dire un site ou un livre pratique pour les faire.

9 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bon je te remercie pour tout, mais meme en me mâchant les mots, j'y pige que dalle ou ca marche pas en tout cas merci pour tout, je vais m'offrir un bouquin sur les VBA en espérant qu'il y arrivera lui ;)
    1. Bonjour,

      2 exemples :

      1) pour =RECHERCHER.SELECTION(DONNEES!$B$3;2;2;1;1;FAUX) :
      tu récupères (ou tu as déjà) le fichier listevba.xls de correspondance entre commandes français/anglais.
      tu vas dans l'onglet Fonctions Macro MS Excel 4.0
      tu recherches RECHERCHER.SELECTION
      en regard, tu trouves FORMULA.FIND
      tu vas dans macrofun.hlp rubrique Visual Basic Equivalents for Macro Functions and Commands
      tu recherches FORMULA.FIND et tu trouves :

      FORMULA.FIND(text, in_num, at_num, by_num, dir_num, match_case)
      et, en regard,

      Cells.Find(what := text, after := ActiveCell, _ 
       lookIn := in_num, lookAt := at_num, _ 
       searchOrder := by_num, _ 
       searchDirection := dir_num, _ 
       matchCase := match_case).Activate


      2) pour les fonctions LIRE.CELLULE() :
      tu écris une formule en E7
      tu te positionnes sur la ligne 7 et tu crées un nom "formule", par exemple, avec la définition =LIRE.CELLULE(6;!$E7))
      Tu saisis =formule n'importe où sur la ligne 7 et tu obtiens la formule que tu as saisie en E7.
      en jouant sur les $, tu obtiens le même résultat sur la colonne E ou sur toutes les cellules ou sur une cellule unique (celle qui t'aura servi pour définir le nom).

      cordialement

      PS : tu as aussi une méthode VBA : Application.ExecuteExcel4Macro, méthode qui exécute une fonction macro Microsoft Excel 4.0. C'est peut-être à creuser.
      1. Contributeur
        Bonjour,
        De toutes façons, la logique est différente entre les macros XL4 et VBA (j'avais déjà communiqué pour Find et apparemment ça n'as pas marché suivant Boubaom). il va être particulièrement cass-g... et très long, m^me avec un bon niveau en VBA, de vouloir traduire XL4-VBA que de refaire en VBA, m^me si on comprend le sentiment de Boubaom de la tâche à accomplir

        Pour le fun, concernant executeexcel4macro, voici un exemple -macro dite de Walkenbach- qui lit une cellule dans un fichier fermé
        Sub lire_ferme()
        Dim chemin As String
        
        chemin = ThisWorkbook.Path
        Range("A3") = ExecuteExcel4Macro("'" & chemin & "\[source.xls]Feuil1'!R1C1")
        End Sub


        Autrement , avec Le topo de Jean-Marie sur XLD et pour utiliser ces fonctions sur XL>=97 , il faut les écrire comme si on créait une cellule nommée et elle seront statiques: appui sur F9 pour réveiller la b^te
    2. Bon la c clair, je suis plus con que la moyenne, j'y comprend rien ou ca marche pas, j'vais acheter une corde et me pendre :)
      1. Merci pour tout michel, je vais essayer ce site
        bonne journée a toi
        1. Bonsoir à tous,

          Tu pourrais avantageusement faire une recherche sur macrofun.hlp qui existe en français et en anglais sur le site microsoft.
          C'est moins efficace que michel_m mais tu as des équivalences VBA pour les macros xl4.
          Je précise que je ne les ai pas testées.

          Tu peux également utiliser certaines fonctions/macro XL4 (exemple : LIRE.CELLULE(6;!A7))
          regarde ce post de XLD https://www.excel-downloads.com/threads/astuce-recente-lire-cellule.32955/

          Cordialement
          1. Si tu veux me les faire, PAS DE SOUCI ;)
            1. Contributeur
              Dommage : je n'y connais rien en macros ...
          2. Contributeur
            "je recherche un moyen facile de transférer mes macros Excel 4 en VBA"
            à ma connaissance cela n'existe pas.

            Quand tu auras ton nouvel Excel, tu ouvriras chacun des fichiers et tu écriras les macros de nouveau.
            1. Contributeur
              Si ne je ne trompe pas, Excel 4 date d'il y a vingt ans !
              Tu trouveras difficilement des gens qui utilisent encore cette antiquité ...
              1. Je sais bien mais moi je l'utilise, donc il faut que je trouve au moins 1 personne pour m'expliquer comment les transformer en VBA comme ca je pourrai acheter un Excel plus récent
                Bonne journée a toi aux Antilles (veinard)
            2. Contributeur
              Bonjour

              pour "=RECHERCHER.SELECTION(EQUIPE.1;2;2;1;1;FAUX)"

              tu recherches la 2° cellule (findnext) portant la valeur "EQUIPE.1" (xlvalues) chaine complete(xlwhole) insensible à la casse (par défaut) , la recherche par colonne ou par ligne n'est pas utile

              With ActiveSheet.Cells   
                   Set cellule = .Find(what:="equipe.1", LookIn:=xlValues, lookat:=xlWhole)   
                   Set cellule = .FindNext(cellule)


              dans les 2 versions, il n'est pas tenu compte de la présences du texte "equipe.1"

              le reste viendra + tard

              Edit 15:18h
              SELECTION.ATTEINDRE("LC(-5):L(1)C(-1)")
              Range(ActiveCell.Offset(0, -5).Address & ":" & ActiveCell.Offset(1, -1).Address).Select 

              meme punition pour les 2 autres

              Nommez un endroit précis pour pouvoir y mettre une fin ou le lancement autres macros

              pas compris la question

              Bon WE
              Michel
              1. Merci michel
                alors EQUIPE.1 est le nom donner a une cellule dans une page differente, ca pourrai etre =RECHERCHER.SELECTION(BUTEURS!$H$5;2;2;1;1;FAUX)

                Nommer un endroit de la VBA, cad ex: ligne 62 nommer FIN
                comme ca en fonction de certaines formule ça ailles sur FIN et ça lance une autre macro ou que ca finisse celle la, je sais je suis pas très clair, je préférai les Macros Excel 4 la obliger de tout refaire j'en ai pour un moment si il y avait un site qui me le faisait automatiquement ca serai mieux
                Mais déja un grand merci de m'avoir aidé
                bon week a toi aussi
              2. Je dois être plus c.. que la moyenne, mais ca marche pas, alors si ca te dérange pas je vais te mettre la macro en entier:
                MACRO.ATTEINDRE.EQUIPE.1
                =EXECUTER(MACRO_ATTEINDRE_EQUIPE_DEPART;FAUX)
                =RECHERCHER.SELECTION(DONNEES!$B$3;2;2;1;1;FAUX)
                =SELECTION.ATTEINDRE("L(36)C")
                =SELECTIONNER("L(-21)C(1)")
                =PAGEH(-1)
                =DEFILER.CLASSEUR(;FAUX)
                =RETOUR()
                Merci d'avance
              3. OUPS oublier
                =SELECTIONNER("LC")
                avant
                =PAGEH(-1)