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 :

Formule sous VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingenieur
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Par défaut Formule sous VBA
    Bonsoir a tous,

    Je vous contact car je bloque sur un sujet.
    J'ai un fichier que j'ai cree pour l'equipe pour le suivi d'info.
    Les gars me transmettent une feuille de ce classeur chaque semaine (la meme).
    La feuille (feuil2) qu'ils m'envoient n'a aucune mise en forme ni rien. Mais cette feuille va recuperer les infos dans la page principale feuil 1 de la maniere la plus simple possible avec la forme A1 =Feuil1!A1 , B1 = Feuil1!B1 etc j'ai la meme formule pour toutes les cellules.
    Le probleme est que lorsqu'une ligne est supprimee de la feuille 1 j'ai #REF qui s'affiche sur la feuille 2.
    Exemple : on supprime la ligne 21 feuille 1 => #REF apparait a la ligne 21 feuille 2. Mais lorsque j'ecris a nous sur la ligne 21 (22 en fait qui est devenue 21 car la ligne 21 a ete supprimee) bah les infos de la ligne 21 feuille 1 apparaissent sur la ligne 22 de la feuille 2 et la ligne 21 de la feuille 2 continue a afficher #REF

    Y'a t'il un moyen d'eviter ce bug.
    Ne serait il pas mieux de passer par un macro?

    Merci d'avance pour vos reponses

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Par défaut
    Bonsoir à Tous,
    c'est normal qu'il affiche une erreur car le lien n'existe plus,
    ce qu'il faudrait c'est la même formule mais en indirect
    tout ce qui se trouve entre les " " est du texte, comme cela le lien ne sera plus supprimé

  3. #3
    Membre averti
    Homme Profil pro
    Ingenieur
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Par défaut
    Salut Tony,

    Merci, ca marche nickel.
    Il me semblait bien qu'il fallait utiliser la formule indirect mais j'oubliais les guillemets

    Par contre en mettant les guillemet je ne peux pas etendre la formule
    Si je l'etend la formule ne s'incremente pas et je n'ai pas l'option qui permet d'increnter.

    J'ai adapte le code pour ne pas avoir un 0 si je n'ai rien en Feuil1

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(INDIRECT("Feuil1!A1")="","",INDIRECT("Feuil1!A1"))

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Il me semble qu'il y a d'autres méthodes plus fiables et plus pratiques pour récupérer les données d'une autre feuille. La fonction =INDIRECT("A1") va poser le chouette problème de devoir être adaptée pour chaque cellule de la plage récupérée... Renommer la feuille va en plus poser de sacrés problèmes... Pour utiliser INDIRECT dans ce cas de figure et notamment pouvoir étendre la formule, il faudrait recomposer l'adresse par formule: =INDIRECT("feuil1!" & ADRESSE(LIGNE();COLONNE())).

    Mais de toutes façons, cette manière de faire est à mon sens à bannir. Avec un tag 2019, tu pourrais utiliser Power Query pour récupérer les données d'une feuille, à condition qu'elle soit formée correctement. Le besoin de recourir à ta solution témoigne selon moi d'un problème de connexion conception.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre averti
    Homme Profil pro
    Ingenieur
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut.

    Il me semble qu'il y a d'autres méthodes plus fiables et plus pratiques pour récupérer les données d'une autre feuille. La fonction =INDIRECT("A1") va poser le chouette problème de devoir être adaptée pour chaque cellule de la plage récupérée... Renommer la feuille va en plus poser de sacrés problèmes... Pour utiliser INDIRECT dans ce cas de figure et notamment pouvoir étendre la formule, il faudrait recomposer l'adresse par formule: =INDIRECT("feuil1!" & ADRESSE(LIGNE();COLONNE())).

    Mais de toutes façons, cette manière de faire est à mon sens à bannir. Avec un tag 2019, tu pourrais utiliser Power Query pour récupérer les données d'une feuille, à condition qu'elle soit formée correctement. Le besoin de recourir à ta solution témoigne selon moi d'un problème de connexion.
    Salut Pierre,

    Merci pour la reponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT("feuil1!" & ADRESSE(LIGNE();COLONNE()))
    me renvoi un message d'erreur. Ca ne fonctionne pas.

    Je n'ai pas bien compris la fin de ton message par contre. Qu'entends tu par probleme de connexion?

    Je sais que tu es un fervent defenseur de Power Query, je suis pas mal d'explication et cours que tu donnes dessus sur d'autres sites mais c'est trop nouveau pour moi. Et surtout je ne pense pas que la feuille soit formee correctement.
    J'apprend tout doucement PQ, surement un outils qui me sera indispensable pour la suite

    Y'a t'il peut etre une possibilitee de passer par une macro par contre?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    As-tu bien une feuille nommée Feuil1 dans ton classeur? Il faudrait être plus précis sur "ça ne fonctionne pas" et préciser quand tu as le message d'erreur (validation? en réponse dans la cellule?) et ce qu'il dit.

    Nom : 2020-12-03_051533.png
Affichages : 118
Taille : 9,0 Ko



    Citation Envoyé par Quiro Voir le message
    [...]
    Je n'ai pas bien compris la fin de ton message par contre. Qu'entends tu par probleme de connexion?[...]
    Désolé, je voulais dire de conception.


    Citation Envoyé par Quiro Voir le message
    [...]
    Je sais que tu es un fervent defenseur de Power Query, [...]je ne pense pas que la feuille soit formee correctement.[...]
    C'est pourquoi je pense à un problème de conception


    Citation Envoyé par Quiro Voir le message
    [...]
    Y'a t'il peut etre une possibilitee de passer par une macro par contre?
    Sans en savoir plus sur ta feuille de départ et ce que tu souhaites à l'arrivée, il est impossible de te répondre. pourquoi ne pas travailler directement sur base de la feuille plutôt que de la "recopier" par formules sur une autre. Je ne comprends pas trop bien le but de la manoeuvre...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre averti
    Homme Profil pro
    Ingenieur
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Par défaut
    Salut Pierre,

    En fait, j'ai le message classique d'excel qui s'affiche : "Nous avonc rencontre une erreur dans cette formule ...."

    Pour reprendre : ce que j'ai appele la feuille 1 est en fait la feuille planning ou les gars font le suivi de leur boulot. Chacun a son propre fichier
    Le probleme c'est que les gars a chaque fois detruisent le fichier en faisant des copier coller, en supprimant des formules dessus, en y ajoutant leur propre mise en forme, en masquant des colonnes etc...
    Ce planning doit m'etre envoye chaque semaine afin que je puisse compiler les donnees de tout le monde et c'est la que ca devient un cauchemard car ca me prend enormement de temps.

    Le but c'est de recuperer toutes ces donnees mais de facons brutes dans un autre onglet "Lead" standard qui me sera envoye chaque semaine de facon a ce que la compilation soit rapide et que je puisse derriere peut etre l'automatiser.

    Je sais pas si je suis assez clair. Je n'envois pas le fichier car beaucoup n'acceptent pas de l'ouvrir mais je peux le faire si tu veux.

    Encore merci a toi car ce n'est pas la premiere fois que tu m'aides

Discussions similaires

  1. [XL-2013] Intégration Formules sous VBA
    Par Kirile dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/09/2015, 16h37
  2. Pb de formule de calcul sous VBA
    Par bagheria85 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/09/2010, 11h58
  3. création d'un colonne formule sous vba
    Par volubiliss dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/06/2010, 09h28
  4. [E-02] formules excel sous vba
    Par ladygtk dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/02/2009, 13h19
  5. Forcage sous VBA d'une formule excel
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/10/2007, 10h22

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