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 :

Windows XP à Windows 7: Problème de compatibilité


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut Windows XP à Windows 7: Problème de compatibilité
    Bonjour,

    je suis actuellement en stage pour valider ma première année du BTS IRIS. Cette année, j'ai vu que le C, C++ donc pas de VBA du tout. Mon tuteur m'a lancé sur un logiciel de gestion qui fut conçu sous Windows XP mais depuis, l'entreprise est passé à Windows 7 et ce logiciel rencontre un problème qui est, pour mon tuteur, de compatibilité. Ce logiciel ouvre un formulaire qui renseigne ce qui est disponible en magasin (boulon, vis et autres...) mais ce formulaire plante dès l'ouverture et l'erreur est la suivante:

    Erreur d'exécution '1004':

    La référence est incorrecte. Cette version de fichier peut uniquement contenir des formules faisant référence à des cellules qui se trouvent dans les dimensions de feuille de calcul correspondant à 256 colonnes (colonnes IW ou supérieure), ou 65 536 lignes.

    Au niveau du code, lorsque je lance le débogage, c'est ces lignes là qui font défaut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Workbooks(ClasseurSource).Sheets(1).Range(RangeSource _
            ).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Critères"). _
            Range(RangeFiltre), CopyToRange:=Range("A1:C1"), Unique:=False
    Besoin de votre aide, en vous remerciant d'avance.

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Bonjour,
    Le message d'erreur semble indiquer une erreur de gestion du nombre de lignes et de colonnes
    qui diffèrent selon la version Excel référencée donc s'intéresser à la valeur de RangeSource.

  3. #3
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Merci pour ta réponse rapide, au moins je sais d'où vient le problème. Comment puis-je faire pour le résoudre ? Dans mon fichier de variable, j'ai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public RangeSource As String, LastPlateau(9) As Integer '9 kardex maxi par site

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Commence par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    debug.print RangeSource
    Workbooks(ClasseurSource).Sheets(1).Range(RangeSource _
            ).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Critères"). _
            Range(RangeFiltre), CopyToRange:=Range("A1:C1"), Unique:=False
    Pour la suite, vu la quantité d'information, on n'est pas devin

  5. #5
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Bonjour,

    j'ai toujours l'erreur. De quoi avez vous besoin afin de m'aider ?

  6. #6
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Du résultat obtenu avec l'instruction debug.print

    Ctrl G : fenêtre de débogage

    PS: Voir le tutoriel sur le débogage dans ma signature

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Plusieurs questions:

    Sont-ils passés d'un WindowsXP 32 bits à un Windows 7 64 bits ?

    Ont-ils changé de version d'Excel ?

    Si oui, leur nouvelle version d'Excel est-elle 32 bits ou 64 bits ? Si oui, il y a certaines précautions à prendre; notamment avec l'utilisation directe de l'API Windows. (Cela ferait un point en ta faveur, si tu vérifies cela et que tu corriges au besoin)

    Est-ce que, dans le classeur que tu utilises, il y a Vraiment une feuille nommée "Critères" qui contient vraiment une zone de critères du nom de RangeFiltre? Sinon, tu as un problème avec cette partie-là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CriteriaRange:=Sheets("Critères").Range(RangeFiltre)

  8. #8
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Bonjour,

    j'ai fait des recherches toute la journée, sans succès.

    Pour la question du XP 32bits à 7 64bits, la réponse est oui.
    Pour la version, effectivement, ils utilisaient Excel 2003 et sont passé directement au 2013.
    Microsoft Office est installé dans x86 donc en 32bits.
    Sur le screen ajouté, tu peux voir la présence du feuille intitulée "Critères" mais apparement, elle est vide ???

    J'espère qu'avec ça, tu vas pouvoir me dire d'où vient le problème est comment le résoudre car actuellement, je n'ai plus d'idée sur quoi faire.

    PS: J'ai ajouté un petit aperçu du code.
    Images attachées Images attachées   

  9. #9
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Castiel777 Voir le message
    Bonjour,


    Sur le screen ajouté, tu peux voir la présence du feuille intitulée "Critères" mais apparement, elle est vide ???

    PS: J'ai ajouté un petit aperçu du code.
    Regarde la feuille dans Excel, pas dans VBA.

    Cliques sur l'onglet "Critères" pour sélectionner la feuille

    Appuies sur F5 et essaies d'atteindre la plage RangeFiltre.

    Est-ce que la zone existe?

    Est-elle sélectionnée ?

    Y-a-t-il des critères dans la zone sélectionnée ?

    Aussi regarde dans ton module APIWindows, s'il n'y a pas des lignes en rouge, signe d'erreurs.

    Bien content de voir qu'il y a aussi SAP dans le décor. C'est mal parti, je n'ai pas SAP, ni accès à SAP.

  10. #10
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Bonjour,

    j'ai pu faire un screen de la feuille Excel "Critères".
    Quand je fais F5 sur VBA, ça me demande soit "Fin", soit "Déboger" donc pas moyen d'atteindre la plage RangeFiltre.
    Pour le module APIWindows, je n'ai aucune ligne en rouge.
    Images attachées Images attachées  

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/06/2011, 21h00
  2. Réponses: 2
    Dernier message: 05/10/2010, 14h59
  3. Réponses: 4
    Dernier message: 18/05/2009, 01h43
  4. Réponses: 5
    Dernier message: 16/03/2006, 00h09
  5. Problème de compatibilité Windows XP vers 98
    Par chleuh dans le forum EDI
    Réponses: 5
    Dernier message: 22/08/2005, 11h06

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