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

Conception Discussion :

Utilisation de Index - Indirect


Sujet :

Conception

  1. #1
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut Utilisation de Index - Indirect
    Bonjour le Forum
    J'ai effectué plusieurs recherches et je n'arrive pas à obtenir le résultat escompté.
    Est-ce que ce que je souhaite est faisable !
    Voila mon soucis :J'ai un classeur avec plusieurs onglets dont deux me servent d'exemple. Ils s'appelle vierge1 et vierge2. Ils permettent de faire des calculs sur des produits.
    J'utilise un bouton qui copie/colle la feuille choisie (Vierge1 ou 2) et la renomme au nom d'une festivité, jusque là tout fonctionne.
    C'est dans la feuille List_Prod (qui est permanente regroupant tous les noms de produits) que cela se complique car je voudrais récupérer tous les noms des produits qui seront nouvellement inscrits dans la ou les nouvelles feuilles nommées.
    Dans Vierge1 ou 2, j'ai crée une zone de regroupement des nom des produits en FA2:FA181. J'ai nommé cette plage Liste_Prod =!$FA$2:$FA$181 de façon que le nom ne soit pas spécifique à un onglet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX(Liste_Prod;PETITE.VALEUR(SI(Liste_Prod<>0;LIGNE(INDIRECT("1:"&LIGNES(Liste_Prod))));LIGNES($1:1)));"")
    Cette formule me renvoie une cellule vide, alors que si j'utilise le nom d'une plage spécifique (du genre : =Essard!$A$2:$FA$181 ) à un onglet tout fonctionne. Le nom des produits sont en place.
    Comme vous le comprenez je ne connais pas auparavant le nom des futurs Onglets.
    La question est la suivante : est-ce-que cela est possible si Oui comment ?
    Merci d'avance
    Cordialement

  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 764
    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 764
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne visualise pas ce que tu veux faire exactement.
    Pourrais-tu montrer le calcul à effectuer avec des références normales (sans Ligne, Indirect, etc.).
    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
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut Utilisation de Index - Indirect
    Re
    Merci pour la rapidité de réponse.
    J'ai renommé l'onglet de récupération List_Prod par Recup_Prod
    Voici comment je pratique
    1- Je copie Vierge1 ou vierge2
    2- Je colle Vierge1 ou 2 et je renomme l'onglet copié par un nom X (par code)
    3 - Je renseigne les différentes plages à renseigner (manuellement)
    4 - Les plages contenant le noms des produits sont reproduits dans la plage FA2:FA181 de chaque onglet actif (déjà dans la matrice vierge1 ou vierge2)
    5 - le nom de chaque nouvel onglet est placé en EZ (par code)
    6 - Je transpose le nom des onglets sur la ligne FC7:FC
    7 - Je voudrais que la plage FA2:FA181 de chaque nouvel onglet soit recopiée soit le nom de l'onglet en FC

    Je ne sais pas si j'ai été assez explicite
    S'il le faut je te joint le fichier. Il n'y rien de personnel pour l'instant.
    Cordialement

  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 764
    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 764
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Désolé le brouillard s'épaissit (cela doit être dû la fin de la journée)
    Je voudrais que tu montres la formule que tu utiliserais sans INDIRECT, LIGNE et LIGNES

    Par exemple si en cellule A2, tu as comme valeur H2:H10, tu publies
    au lieu de
    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
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Re
    Excuses moi si je n'ai pas correctement répondu.
    Voici éventuellement le résultat que je souhaiterait obtenir : =Essard!FA2
    En sachant que Essard est le nom de l'onglet.
    Il n'y a aucun calcul dans cette récupération de noms.
    Cordialement
    Mille excuse pour le brouillard........

  6. #6
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Vu l'enthousiasme provoquer par ma demande, tout laisse penser que cela est impossible.
    Je vais essayer une autre méthode
    Cordialement

  7. #7
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Salut.

    Entre autres choses, je ne comprends pas pourquoi tu utilises INDIRECT puisque tes plages sont fixes… Autrement dit, lignes(Liste_Prod) est fixe, donc pourquoi utiliser INDIRECT?

    Ne pourrais-tu pas utiliser DECALER? (Bien que je n'ai pas compris la finalité de l'exercice… )
    "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...
    ---------------

  8. #8
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Bonjour Pierre
    Effectivement la colonne FA2:FA200 est fixe dans toutes les feuilles. Le problème est que la feuille, elle ne l'est pas, car elle n'est pas encore nommée.
    La finalité est la suivante pouvoir utiliser toutes les valeurs des colonnes FA... de toutes les feuilles à venir qui sont issues d'un modèle.
    En quelque sorte copier FA2:FA200 de toutes les feuilles et les coller dans la feuille RECUP_PROD en B5, C5..... sous les noms en B4.... des onglets qui sont placés par la fonction TRANSPOSE.
    Pour la fonction DECALER, pour l'instant je ne l'ai pas encore utilisée, mais de ce je viens de regarder sur les forums, il s'agit de récupérer une plage mais dans la même feuille. Je ne sais probablement pas utiliser la fonction DECALER.
    Je suis arrivé à obtenir un semblant de vérité en utilisant la formule suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTERREUR(INDIRECT(ADRESSE($FB9;157;;;FD$7)));"";INDIRECT(ADRESSE($FB9;157;;;FD$7)))
    FB est la colonne renfermant le n° de la ligne à prendre en compte. Ce qui me permet de tirer vers le bas la formule.
    Cordialement et merci de l’intérêt que tu portes à mon soucis.

  9. #9
    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 764
    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 764
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour obtenir l'adresse Nom de feuille & FA2:FA200, c'est
    En A2, le nom de la feuille (sans caractère espacé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INDIRECT($A2 & "!" & "FA2:FA200")
    Exemple pour effectuer la somme des cellules de la plage de cellules B2:B11 de la feuille dont le nom est en cellule B2 (toujours sans caractère espacé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(INDIRECT($A2&"!"&"B2:B11"))
    En ce qui concerne la copie, comme je le fais toujours soit manuellement, soit par le VBA, je n'ai pas pas le temps de me pencher sur ce problème.

    [EDIT]
    Un petit exemple de copie de la plage de cellules B2:B11 de la feuille dont le nom est en en cellule A2 (nom sans caractère espacé)
    placer la formule ci-dessous dans une cellule quelconque et recopier ensuite vers le bas (sur 10 lignes) à l'aide de la poignée de recopie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(INDIRECT($A$2&"!"&"$B$2");LIGNE(A2);0)
    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

  10. #10
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Bonjour Philippe
    Toujours aussi performant, tout comme Pierre
    Je vais mettre tes solutions en lieu sûr.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pour obtenir l'adresse Nom de feuille & FA2:FA200, c'est
    En A2, le nom de la feuille (sans caractère espacé)
    INDIRECT($A2 & "!" & "FA2:FA200")
    Une question: si le nom a des espaces qu'elle est alors la formule ?

    Beaucoup plus propre que du bricolage de ma façon, qui fonctionne néanmoins.
    Je ne connais pas toutes les finesses d'Excel et d'Access, mais je progresse grâce à ce forum et je remercie tous les protagonistes.
    Cordialement

  11. #11
    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 764
    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 764
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Une question: si le nom a des espaces qu'elle est alors la formule ?
    Il faut ajouter des apostrophes

    Regarde avec une formule classique
    Sans caractères espacé
    Avec caractères espacés
    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

  12. #12
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 372
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Re
    Ok merci
    Cordialement

Discussions similaires

  1. Requête SELECT : limite d'utilisation des index
    Par DadaWeb dans le forum Requêtes
    Réponses: 7
    Dernier message: 07/12/2005, 22h24
  2. Réponses: 1
    Dernier message: 01/03/2005, 21h36
  3. Compteur sur l'utilisation des index
    Par hkhan dans le forum Administration
    Réponses: 11
    Dernier message: 14/10/2004, 17h57
  4. Utilisation des "indexs" ?
    Par vandeyy dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/09/2004, 07h49
  5. Utilisation de Index Server
    Par Emmanuel.G dans le forum XMLRAD
    Réponses: 2
    Dernier message: 03/09/2003, 11h50

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