Pb VERSION excel vb svp

Résolu
Bonjour à tous !

J'ai un gros problème.
J'ai créé une interface sous excel 2003 avec macros en vb 6 , sauf que finalement, il faut que ca tourne sous excel 97 ! et la version vb ? bin y a pas de n° ... microsoft visual basic coyright 87-97...
Les références ne sont évidemment pas les mêmes non plus :
Microsoft excel / office 8 Object library au lieu de 11...
Ca n'aime vraiment pas qd j ouvre sous 97, ca me fait des bog à droite à gauche et pourtant je ne vois pas d où vient le pb .
Exemple : bog sur autofilter, j'ai donc réenregistré la macro sans passer par vb et rien n'est différent niveau langage ... bref...
Quelqu'un peut il m'aider ? Je vous en prie dites moi que je n'ai pas fait tout ça pour rien !

Merci d'avance

12 réponses

  1. Bonjour,

    je n'ai plus d'office 97 pour tester donc difficile!!

    mais voici quelques idées :
    If TextBoxF <> Empty Then Selection.AutoFilter Field:=6, Criteria1:="=*" & TextBoxF.Value & "*" 
    essaie de passer par une variable :
    moncritère="=*" & TextBoxF.Value & "*"
    et de mettre la condition sous la forme :
    If not(isempty(Me.TextBoxF.value)) Then Selection.AutoFilter Field:=6, Criteria1:=moncritère
    ActiveSheet.ShowAllData '=>bog'
    là, tu pourrais mettre un :
    Selection.AutoFilter

    naturellement il faut que ta selection soit correcte! mais si ça marche sous 2003, ça doit être le cas.

    bon courage
    1. Après des essais de débogage, j'ai finalement recréé un nouveau fichier excel sous 97, et copié mes données et mes codes dans ce nouveau fichier. Mais ça ne marche toujours pas.
      J'ai un message au moment de l'enregistrement : "Erreur système &H8000FFFF (-2147418113) Défaillance irrémédiable"
      Si ça peut vous aider à me donner une réponse...
      1. je pense avoir compris d'où venait le rapport d'erreur (et peut etre aussi du meme coup l'erreur irrémédiable...)
        ca commence a fonctionner sous 97
        Mon problème c'est qu'il n'accepte pas grand chose concernant les filtres automatiques (qui tournait sous 2003)
        Ca me met souvent le message suivant : erreur d'éxé 1004 : la méthode Autofilter de la classe range a échoué.
        ...
        Quelqu'un sait il pourquoi?
        1. Re,

          https://support.microsoft.com/en-us/help/248670

          ça parle d'autofilter er de date.

          A+
          1. Bonjour,

            Non il ne s'agit pas de dates, seulement de colonnes de texte.
            Par exemple, à l'ouverture du classeur, les filtres éventuels sur toute lle tableau doivent être enlevés (pas enlevés au sens littéral, mais toutes les valeurs doivent être affichées)
            Private Sub WorkBook_Open()
            ...
            On Error Resume Next
            ActiveSheet.ShowAllData
            ...
            End Sub

            ce code fonctionnait sous 2003 qu'il y ai des données filtrées ou non mais sous 97, ca me met un message d erreur et ca ferme l appli (uniquement s'il y a des données filtrées)
        2. Bonjour,

          Non il ne s'agit pas de dates, seulement de colonnes de texte.
          Par exemple, à l'ouverture du classeur, tous les filtres de la base doivent être enlevés (pas enlevés au sens littéral, mais toutes les valeurs doivent être affichées)
          Private Sub WorkBook_Open()
          ...
          On Error Resume Next
          ActiveSheet.ShowAllData '=>bog'
          ...
          End Sub

          ce code fonctionnait sous 2003 qu'il y ai des données filtrées ou non mais sous 97, ca me met un message d erreur et ca ferme l appli (uniquement s'il y a des données filtrées)

          à un autre endroit du programme (assistant recherche) :

          Private Sub CommandButtonOK_Click()
          'filtrage selon saisie sur assistant recherche'
          If TextBoxF <> Empty Then Selection.AutoFilter Field:=6, Criteria1:="=*" & TextBoxF.Value & "*"
          If TextBoxRF <> Empty Then Selection.AutoFilter Field:=4, Criteria1:="=*" & TextBoxRF.Value & "*"
          If TextBoxMC <> Empty Then Selection.AutoFilter Field:=5, Criteria1:="=*" & TextBoxMC.Value & "*"
          UserForm2.Hide
          End Sub

          là ça bog et rebog, ça ne fonctionne pas du tout, et je ne sais pas pourquoi...

          encore un ?

          un simple bouton bascule :
          Private Sub ToggleButton1_Click()
          If ToggleButton1.Value = True Then
          ToggleButton1.Caption = "Refs Service"
          Selection.AutoFilter Field:=1, Criteria1:="MAGASIN" '=>bog'

          Else
          ToggleButton1.Caption = "+ de références..."
          Selection.AutoFilter Field:=1, Criteria1:="=" & Range("A1").Value
          End If

          End Sub

          et toujours bog

          voilà si ça peut t'aider à y voir plus clair
          a+
          1. Hello.

            La méthode ShowAllData marche bien... à condition que la feuille soit déprotégée. Sinon, erreur 1004 sur ShowAllData.

            Pour peut qu'on fasse un petit test avant, g trouvé ça, tout bête mais qui bogue pas :

            With frmMaFeuil
                'si feuil protégée, enlever PROTECTION avec le mot de passe "dudule"
                If .ProtectContents Then .Unprotect Password:="dudule" 
               'ensuite, si 1 critère est déjà appliqué sur la feuille, désactiver filtre automatique 
                If .FilterMode = True Then .ShowAllData 
            End With


            'Y a plus qu'à reprotéger la feuille ensuite, si besoin.

            Voilà. Ma proposition vient des années après, mais on ne sait jamais ;-)

            D.
          2. La résolution sert, même des années après...

            Merci Duena
        3. salut

          en ce qui concerne Selection.Autofilter, ça ne convient pas, ca enlève les filtres, mon but est d'afficher toutes les entrées mais surtout pas d'enlever les filtres auto
          j'explique (utilisé dans le cadre pro) 2 personnes ont la possibilité d'enregistrer ce classeur, toutes les autres sont en lecture seules
          Donc possible que les 2 personnes en question oublient d enlever les filtres... d où la nécessité d'automatiser sous vb.

          je ne comprend pas pourquoi, ils ne veut pas me défiltrer mes colonnes, est ce que c'est parce que j ai des colonnes cachées...apparemment non, d'ailleursd toutes mes procédures avec autofilter buggent à un moment donné.
          Je ne comprend vraiment pas
          si tu as une autre idée, elle sera la bienvenue

          pour le reste, je vais voir ca demain...

          Ludivine
          1. salut

            il est seulement sur le réseau, mais pas de partage style modifs simultanées...

            quoique tant que je n'ai pas résolu mon pb d'autofilter, il est inutilisable, snif
            1. j'arrive à passer mes filtres sur le 1er pb rencontré tel que je l'ai inscrit voir item 6

              le problème est réellement sur les ActiveSheet.ShowAllData

              après avoir testé en affichant toutes mes colonnes, en enlevant mon visibledropdown=false sur un filtre auto

              j'ai un peu regardé à droite à gauche sur internet , et mis en propriété du bouton de commande
              TakeFocusOnClick = False (je sais meme pas à quoi ca sert ...lol)
              j'ai toujours mon bug , voici les différents petits trucs que j'ai testé :

              ActiveSheet.ShowAllData
              

              si données filtrées=>affiche tout (ca c'est cool lol) et message d erreur + fermeture excel (là ça l'est déjà moins)
              si données non filtrées => erreur exe 1004

              Donc :
              On Error Resume Next
              ActiveSheet.ShowAllData
              
              'ou'
              
              If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData

              si non filtrées => il ne se passe rien, c 'est déjà mieux

              en tout cas, ça ne résout toujours pas mon problème
              personne n'a jamais eu ce genre de pb sur excel 97 ? la méthode est certainement mauvaise ?
              1. bonsoir,

                je n'utilise pas showalldata d'habitude.

                je me sers de autofilter pour retirer (et là ça fait la même chose que showalldata) et pour remettre.

                c'est peut-être une piste. (je teste le filtermode et je joue de l'autofilter)

                je crois même que le test du filtermode n'est pas absolument nécessaire (pas sûr quand même)

                A+
                1. je n'ai pas trouvé de solutions miracles, en pas à pas, en reprenant sous excel 97, le fichier a fini par être utilisable...
                  bref, ne jamais créer des macros sous 2003 si c'est pour une utilisation sous 97 ! lool
                  JVDo, merci pour tes réponses