Passer des numéros de ligne en variable dans des formules

  • Initiateur de la discussion Initiateur de la discussion moostach
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

moostach

Guest
Bonjour,

Je n'arrive pas à résoudre mon chtit problème malgré mes recherches dans l'aide et sur la toile.
J'ai une feuille excel ou je collecte des données de la manière suivante : une date, un site, un chiffre total, différentes colonnes ou je ventile les unités du total, le tout ordonné par la colonne date.
J'ai une autre feuille ou je calcule les totaux de ma colonne total et des colonnes de répartition suivant une plage de date non régulière de la feuille précédente. Rien de sorcier jusque là. Mais à chaque fois que je dois calculer une nouvelle plage de totaux je dois changer les références de mes cellules dans mes formules, plus exactement la ligne de début et la ligne de fin pour créer ma plage, les colonnes étant toujours les mêmes. le copier-coller ne faisant que m'incrémenter d'une unité mes numéros de lignes, cela ne va pas car il s'agit de plages successives.
Si je faisais ça en langage de programmation je récupérerai le numéro de ligne de ma date de début et pareil pour la ligne de fin que je passerai en variable dans mes formules et basta:
ma formule de départ, valable pour différentes colonnes =SOMME(Alerte!C1097:C1274)
le résultat envisagé =SOMME(Alerte!C$var_ligne_deb:C$var_ligne_fin)
J'ai essayé par le nommage de cellules contenant les valeurs de ligne mais la concaténation de texte foire et ne me reconnait pas cela comme une plage mais comme seulement deux cellules.

Alors je pourrai faire une feuille par période et une ligne finale des totaux à recopier dans une nouvelle feuille mais je trouve cette idée nulle et lourde et pourquoi pas revenir au boulier aussi. et je n'ai pas envie de me taper le développement d'une appli pour une telle babiole.

Je ne suis pas un spécialiste d'excel, que j'utilise comme un outil rapide pour des choses simples, donc j'ai pu mal poser mon problème pour lui trouver une solution sur le net. Les langages et IDE microsoft m'ont toujours paru tarabiscotés pour ne pas dire autre chose mais y a-t-il une solution simple à mon problème ?

D'avance merçi pour votre aide.
 
Re : Passer des numéros de ligne en variable dans des formules

Bonjour Le Forum,
Bonjour moostach,

tu peux essayer de procéder de cette façon prevoir dans la feuille ou tu fais la somme 2 cellule ou tu indiques les dates de début et de fin par exemple A1 et B1

ensuite pour la somme une formule du type

=SOMMEPROD((plage date>=A1)*(plage date<B1)*Alerte!C1097:C1274)

si tu n'y arrive pas joint un fichier avec quelque lignes exemple sans données confidentielle car il y a aussi je pense la possibilité de créer une plage nommée adaptable

Jocelyn
 
Re : Passer des numéros de ligne en variable dans des formules

J'ai essayé de faire une copie mais c'est trop compliqué il faut changer toutes les références liés au classeur d'origine et non au nouveau. Voilà pourquoi j'ai du mal à supporter les outils microsoft c'est une une prise de tête carabinée pour faire des choses simples.
Bref, mes plages sont certes liées à des dates mais cela est relativement sans importance. En effet mes enregistrements (je pense base de données, pas tableur) correspondants à une date ne sont pas obligatoirement dans la même plage de données servant à faire les totaux : une date peut être à cheval sur deux plages.
Voilà pourquoi j'ai précisé les numéros de lignes comme variables et non les dates.
Pour ce que je connais du calcul matriciel je crois pas que cela fasse avancer mon schmilblick.
Voilà à quoi ressemble ma 2ème feuille en ayant supprimé les = des formules on obtient une lecture en mode texte. La 1ère ligne est la tête des colonnes, les // sont les séparateurs de colonnes.

Période//D déb//D fin//critère 1//critère 2//critère 3//critère 4
Aout//Alerte!A797//Alerte!A1007//NBVAL(Alerte!B797:B1007)//SOMME(Alerte!C797:C1007)//SOMME(Alerte!I797:I1007)//SOMME(Alerte!J797:J1007)
Aout//Alerte!A1008//Alerte!A1103//NBVAL(Alerte!B1008:B1103)//SOMME(Alerte!C1008:C1103)//SOMME(Alerte!I1008:I1103)//SOMME(Alerte!J1008:J1103)
Septembre//Alerte!A1104//Alerte!A1281//NBVAL(Alerte!B1104:B1281)//SOMME(Alerte!C1104:C1281)//SOMME(Alerte!I1104:I1281)//SOMME(Alerte!J1104:J1281)

je voudrais arriver à un résultat du genre suivant:
Octobre//num_ligne_début//num_ligne_fin//NBVAL(Alerte!Bnum_ligne_début:Bnum_ligne_fin)//SOMME(Alerte!Cnum_ligne_début:Cnum_ligne_fin)//SOMME(Alerte!Inum_ligne_début:Inum_ligne_fin)//SOMME(Alerte!Jnum_ligne_début:Jnum_ligne_fin)

et ainsi de suite pour toutes les nouvelles lignes de totaux que j'aurai à faire. j'ai donc besoin de passer en variable dans mes formules les numéros de ligne. Ces numéros je veux les mettre dans une cellule.
Si je ne suis pas clair dites-moi.
 
Re : Passer des numéros de ligne en variable dans des formules

Bonjour,

Pourrais-tu nous joindre un extrait de ton fichier anonymisé.

Ca nous permettra de mieux comprendre ton problème et donc de mieux pouvoir t'aider

A te (re)lire

@+
 
Re : Passer des numéros de ligne en variable dans des formules

Je ne vois pas ce que cela va changer car vous y trouverez exactement ce que j'ai décris mais si cela vous fait plaisir.
La logique microsoft me tape vraiment sur le système. En plus le forum ne permet d'uploader des fichiers de plus 48,8 To, euh non je délire 48,8 ko, c'est sur c'est méga top lourd.
J'ai donc mis ca sur megaupload. Ce lien n'existe plus. J'espère que je n'aurai pas à expliquer comment cela marche.
Que de complications pour un truc à deux balles. A chaque fois que j'essaye de faire un truc avec crosoft cela tourne au délire. Cela me rend dingue.
 
Re : Passer des numéros de ligne en variable dans des formules

Bonsoir,

pour écrire avec une formule excel la formule théorique "=SOMME(Alerte!C$var_ligne_deb:C$var_ligne_fin)" il faut utiliser la fonction "indirect" pour définir l'adresse d'une cellule



=SOMME(INDIRECT("alerte!C" & var_ligne_deb & ":C" & var_ligne_fin))

& permet de concaténer les valeurs


Bon courage


GIBI
 
Dernière édition:
Re : Passer des numéros de ligne en variable dans des formules

Merçi Gibi, j'ai lu la description de la fonction c'est exactement ça. En plus je n'ai même pas besoin de passer par l'intermédiaire de nommage de cellule je donne directement la référence de la cellule source voulue. Vu comme cela c'est évident. Et c'est bien ce qui m'énerve avec les daubes (excel, word, access, publisher, vba, vb) de crosoft et sa logique totalement merd.....
Un, le nommage de la fonction n'est absolument pas explicite. 2 le moteur de recherche est une daube sans nom car il ne renvoie jamais de réponses valables, hormis les deux trucs à 2 balles. Leur doc est pourrie. Et ce n'est pas nouveau.
Microsoft pour maîtriser il faut avoir galérer comme un âne pendant un temps record pour en sortir quelque chose de potable et c'est le but opposé de l'informatique.

Pour ceux qui connaissent SQL est un langage de requête hyper simple, facile à apprendre et en plus compréhensible à la lecture. Une requête, comme celle que je recherchais, prends 2 secondes à torcher car c'est le b-a-ba.

Cela me rend fou à chaque fois. Je ne sais pas comment vous faites mais châpeau bas et surtout merçi à tous de m'avoir sauver du nervous breakdown.
 
Re : Passer des numéros de ligne en variable dans des formules

Bonjour

moostach à dit:
Pour ceux qui connaissent SQL est un langage de requête hyper simple, facile à apprendre et en plus compréhensible à la lecture. Une requête, comme celle que je recherchais, prends 2 secondes à torcher car c'est le b-a-ba.

Le SQL il faut l'apprendre et certains trouvent cela difficile.
Excel c'est pareil : il suffit d'apprendre et après on trouve cela simple.

Je n'ai pas d'affection particulière pour Msoft mais le tableur et sa logique existait bien avant que Msoft n'y mette son nez(xcel).

Et les bases de données Msoft marchent aussi avec SQL.

Donc inutile d'arriver au nervous breakdown ...

Cool, zen : on est sur XLD
 
Re : Passer des numéros de ligne en variable dans des formules

@ chris
Je ne suis pas d'accord du tout avec sur votre premier point. Il n'y a absolument pas photo entre le SQL et excel, ne serait-ce que par la durée nécessaire pour l'apprendre en rapport avec l'exploitation que l'on en tire. Ce n'est pas en une paire d'heure que l'on exploite excel. Par contre ce n'est pas le même niveau d'abstraction et ça je comprends que cela puisse gêner.

Ensuite je ne parle pas de la logique des tableurs, que j'ai taté mi-90 un quattropro je crois, mais de la logique microsoft dans ses produits. C'est toujours très particulier. Et bill a wampirisé le marché de la bureautique depuis belle lurette alors la concurrence ...
Access utilise le SQL et encore je ne sais plus si il n'est pas un peu particulier. Microsoft ayant l'habitude de personnaliser, enfin je me comprends. Cela n'en fait pas pour autant un produit top. Toutes les applis access que j'ai vues étaient développées par des non-développeurs et bonjour le résultat. D'ailleurs c'est surtout de la programmation événementielle et j'ai toujours trouvé que c'était un produit bancal. De plus j'avais acheté la doc officielle Access qui m'avait coûté une petite fortune et je me suis bien fait ... (choississez le terme qui vous fera marrer le plus) vu que je n'y ai pas souvent trouvé grand chose. Quand à SQL Server jamais essayé.

La crise de nerfs je me la tape toujours avec les carambars de crosoft dès que j'essaye de vouloir aller plus loin qu'une utilisation lambda, absolument mais absolument rien à voir avec XLD ou avec les participants. J'ai l'habitude de trouver mes réponses dans les manuels utilisateurs des langages que j'utilise et de résoudre les problèmes rencontrés rapidement alors c'est vrai qu'avec crosoft j'ai toujours l'impression d'arriver sur une drôle de planète. Ceci explique cela.

Bref je trouve votre conclusion déplacée et sans rapport. Et cela fait un peu donneur de leçon moralisateur. Relisez ma dernière phrase.

Je retourne m'occuper de mes moutons à 5 pattes.
 
Re : Passer des numéros de ligne en variable dans des formules

Bonjour Moostach,


On ne peut comparer Excel qui est un tableur à SQL qui est un langage normalisé d'accés à une base de donnée.
Par contre vous pouvez définir des tables sous excel et y accéder via des ordres SQL (menu données/données externes).

Il existe différent SQL en fonction de la norme utilisée et des SGBD (DB2, Oracle, Sybase, sql server...)

J'ai utilisé aussi multiplan, quattropro, lotus et d'autres avant excel et je confirme que l'on reste dans le même esprit.

Quand vous dites "Toutes les applis access que j'ai vues étaient développées par des non-développeurs et bonjour le résultat" je suis d'accord un développement digne de ce nom doit être fait par un développeur (pas par un utilisateur dont ce n'est pas le métier) et malheuresement certains utilisateurs se prennent pour des dévéloppeurs.
Pour info la programmation sous access s'effectue en VBA et l'événementiel intervient surtout au niveau du traitement des IHM. On peut réaliser des traitement de type batch en mélangeant accés au base de données et programmation "classique".

eh oui, avec un passé de dévéloppeur, j'ai travaillé dans de nombreux environnement technique (maiframe, unix, windows,..) et avec différents langages (Assembleurs, cobol,fortran, pascal, C, Java, VB, ...) avec des logiciels intégrés et je témoigne que microsoft n'est pas plus difficile à aborder que les autres


En conclusion, il faut avoir un peu d'ouverture d'esprit et prendre de la hauteur par rapport au produits que l'on utilise. Utiliser le produit pour ce à quoi il est destiné et ne pas tout confondre (tableur, SGBD (Système de gestion de base de données), SQL (langage),...)

Restons zen

GIBI

PS : je te cite "En effet mes enregistrements (je pense base de données, pas tableur) correspondants à une date ne sont pas obligatoirement dans la même plage de données servant à faire les totaux : une date peut être à cheval sur deux plages.
Voilà pourquoi j'ai précisé les numéros de lignes comme variables et non les dates."

si tu abordes le problème d'une manière fonctionnelle, Il n'y a pas de différence à penser base de donnée ou tableur. tu peux reprendre dans une formule excel les prédicats de la requêtes SQL. Les numéros de ligne que tu évoques sont, a priori, le résultat d'une règle de gestion (mais pas des données fonctionnelles). JOCELYN te donnait une solution avec sommeprod ou tu peux ajouter les conditions que tu veux.
 
Dernière édition:
Re : Passer des numéros de ligne en variable dans des formules

Salut
Je suis plutôt analyste-programmeur avec un background moins poussé que le tien. Je n'ai pas fait une tartine au départ sur mes connaissances ou autre, c'est souvent mal vu et mal compris. Mais je peux dire que les infos que tu donnes je les connais. Pour les suspicieux IHM = interface homme machine, et l'on pourrai parler d'ergonomie sujet qui me fait bien marrer chez les informaticiens, enfin passons. Il est difficile dans un forum d'avoir une véritable conversation sans passer par des raccourcis et des formulations génériques.

Je ne peux comparer vraiment les produits à bill avec les autres mais mon vécu avec eux c'est l'abonnement au nurofen. Mais je veux bien te croire, je ne suis pas difficile. Comme je l'ai dit la préhension et l'utilisation de leur produit est ... euh ... particulière, c'est mon avis et comme les couleurs ca ne se discute pas. Je me fous royalement que machin aime ou déteste comme le pourpre profond et moi moins ou plus et je n'irai pas lui faire de leçon de morale ou lui donner des conseils (ne sont pas les payeurs). Je crois que cela s'appelle le respect d'autrui et la tolérance. N'avez-vous pas un sujet qui vous irrite ? Et alors ? On ne va pas en faire une cathédrâle. Imaginez que l'on vous tombe sur le rable : fais pas çi, fais pas ça, dis pas çi, penses pas ça, et gnagnagna et gnignigni. Et pour qui ils se prennent ? Renverser la situation vous amène immédiatement à plus de circonspection. Comme disait ma grand-mère : ne fais pas aux autres ce que ...

Utiliser un tableur pour cet usage précis ne me semble pas disproportionné et je n'ai donc pas développé d'appli pour, même si je me sens nettement plus à l'aise et que je suis formaté intellectuellemnt dans ce sens.

Un peu de rhétorique : n'y aurai-t-il pas quelque part une contradiction entre
ne pas tout confondre (tableur, SGBD (Système de gestion de base de données), SQL (langage),...)
et
si tu abordes le problème d'une manière fonctionnelle, Il n'y a pas de différence à penser base de donnée ou tableur.

J'ai évalué la solution de JOCELYN puisque j'ai parlé du calcul matriciel, qui n'est pas ma tasse de thé. C'était la moindre des choses : je pose une question et l'on me réponds. Mais bon passer par là, faire des tests et tutti quanti pour juste passer deux variables cela me semble bien disproportionné et ne faisais que renforcer mon opion du machin excel. Car la formule ne semblait pas répondre précisement à mon sujet. Elle pouvait certainement être modifié pour arriver au résultat voulu puisque tu le dis et je veux bien te croire. Mais bouffer des heures sur une fonction que je maîtrise pas, merçi, j'ai passé le stade du geek galérien avec ces nuits blanches. Informatique = rapidité et efficacité pour moi.

Voili voilà.
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 formule addition
Réponses
4
Affichages
69
Réponses
4
Affichages
116
Réponses
13
Affichages
162
Retour