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 :

Problème compatibilité macro excel 2003 / 2010


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Comptable
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Comptable
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Problème compatibilité macro excel 2003 / 2010
    Bonsoir à toutes et à tous,
    Cela fait plusieurs jours que je cherche la solution mais je ne m'en sors pas.
    J'ai créé grace à des connaissances sommaires en vba un fichier de création et de demande de DUE (déclaration unique d'embauche) au sein de la société dans laquelle je travaille.
    Mais voilà nous sommes passés à excel 2010 et le fichier créé sous excel 2003 ne fonctionne plus.... !
    En fait le problème vient quand on envoie les due (onglet DUE EXPORT -> Envoyer par mail ces DUE)
    La macro bloque sur ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Delete
    Je peux vous envoyer le fichier si vous le souhaitez.
    Quelqu'un pour m'éclairer ?
    un grand merci à vous pour votre aide
    Anne Lise

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 729
    Points : 28 555
    Points
    28 555
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu dis que la macro bloque sur ces lignes, mais encore.
    Qu'est-ce qui bloque ?
    Reçois-tu un message d'erreur et si oui lequel ?
    Ces instructions signifient qu'il faut sélectionner les cellules vides de la sélection et ensuite de supprimer les lignes entières des cellules sélectionnées.
    C'est vraisemblablement la sélection qui est mal faite
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Candidat au Club
    Femme Profil pro
    Comptable
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Comptable
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    Je vais de surprise en surprise, en effet l'erreur revoie un message d'erreur "pas de cellules correspondantes" mais lorsque j'exécute la macro en pas à pas détaillé, elle fonctionne sans problème !!
    Je n'y comprends plus rien !!
    Merci de votre aide
    Anne Lise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Sheets("DUE export").Select
    Application.GoTo Reference:="plage_dueafaire"
        Selection.Copy
        Sheets("Récap DUE et PAYES").Select
        Application.GoTo Reference:="deb_base_recappayes"
        Selection.Insert Shift:=xlDown
        Application.GoTo Reference:="avirer_recappayes2"
        Selection.SpecialCells(xlCellTypeBlanks).Select
        Selection.EntireRow.Delete

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 729
    Points : 28 555
    Points
    28 555
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le message Pas de cellules correspondantes signifie dans le cas qui nous occupe qu'il n'y a pas de cellules vides dans la zone de sélection, soit la plage nommée avirer_recappayes2.
    Tout au moins si le message d'erreur se situe bien à l'instruction de la ligne 9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Candidat au Club
    Femme Profil pro
    Comptable
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Comptable
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Le message d'erreur se situe bien à cette ligne en effet.
    Mais le problème est bien qu'il y a au moins une cellule vide (copie totale d'un tableau avec une ligne de titre vide + d'autres cellules vides possibles).
    Ce que je ne comprends pas c'est que la macro fonctionne en pas à pas détaillé mais pas en intégralité quand je la lance.
    Merci de votre réponse et votre aide
    Anne Lise

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 729
    Points : 28 555
    Points
    28 555
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par alf62000 Voir le message
    Ce que je ne comprends pas c'est que la macro fonctionne en pas à pas détaillé mais pas en intégralité quand je la lance.
    C'est en effet curieux sauf si les zones "deb_base_recappayes" et "avirer_recappayes2" ne sont pas toutes les deux sur la feuille Récap DUE et PAYES.

    En VBA, il faut proscrire les Select, Selection, Activate et...
    Par exemple : Au lieu d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets("db").Select
    Application.GoTo Reference:="maZone"
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Delete
    Il vaut mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Sheets("db").Range("maZone").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    C'est plus propre, plus sûr, plus rapide.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Candidat au Club
    Femme Profil pro
    Comptable
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Comptable
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci pour ce retour, j'ai enlevé comme indiqué toutes les "fioritures", mais malheureusement ça ne fonctionne toujours pas...
    je commence à désespérer.
    Quoi qu'il en soit merci à vous
    Anne Lise

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 729
    Points : 28 555
    Points
    28 555
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Joins ton fichier à la discussion.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Candidat au Club
    Femme Profil pro
    Comptable
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Comptable
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    En PJ le fichier.
    Il s'agit du bouton de contrôle "envoyer par mail ces DUE" dans l'onglet "DUE export" qui lance la macro qui ne fonctionne pas.
    Merci à vous
    Anne Lise
    Fichiers attachés Fichiers attachés

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 729
    Points : 28 555
    Points
    28 555
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Désolé mais j'ai regardé la procédure en question qui comporte près d'une centaine de lignes de code et c'est loin d'être nettoyé comme vous l'avez dit.
    Un simple exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Application.GoTo Reference:="plage_dueafaire"
        Selection.Copy
        Sheets("Récap DUE et PAYES").Range("deb_base_recappayes").Insert Shift:=xlDown
        Range("avirer_recappayes2").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        ActiveWindow.SmallScroll Down:=-1
        ActiveSheet.Range("plage_recap").AutoFilter Field:=11
        ActiveSheet.Range("plage_recap").AutoFilter Field:=12
        ActiveSheet.Range("plage_recap").AutoFilter Field:=13
        ActiveSheet.Range("plage_recap").AutoFilter Field:=14
    Le range que j'ai mis en évidence en rouge n'est attribué à aucune feuille alors que cette plage ou cellule est de portée Feuille.
    C'est plein d'ActiveSheet, ActiveWindows de Select, Activate etc...
    De plus il est important de préciser la feuille mais aussi le classeur d'un objet au risque d'écrire ou de lire sur la feuille active surtout qu'à un moment donné la code fait un export vers un classeur Temporaire.
    Il faut franchement revoir l'ensemble en travaillant avec des variables Objets déclarées et assignées en début de procédure.
    Cela facilite la maintenance et surtout rends l'application pérenne.
    Pour tout nettoyer et rendre cela lisible, il y en a pour un bout de temps.
    Cela dépasserais largement le temps que j'accepte de consacrer pour une aide.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  11. #11
    Candidat au Club
    Femme Profil pro
    Comptable
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Comptable
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci Corona, je vais tenter d'avancer encore
    Cordialement
    Anne Lise

Discussions similaires

  1. Compatibilité Macros Office 2003/2010
    Par Miaeln dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2013, 10h23
  2. [XL-2010] Problème compatibilité excel 2003-2010
    Par bbcancer dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/10/2012, 17h32
  3. Problème macro excel 2003 vers 2007
    Par anne1635 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/12/2011, 22h25
  4. [Toutes versions] compatibilité office excel 2003 2010
    Par CODYCO dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/11/2011, 16h35
  5. Probléme de code lié a une macro (Excel 2003)
    Par mairiemeudon dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2010, 15h35

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