formule cellule

EVYPIL

XLDnaute Nouveau
Bonsoir,

j'ai un tableau à automatiser, je l'ai fait en grande partie malgré mes connaissances toutes récentes dans ce domaine.
Pour mon avant dernière formule je ne sais pas dans quelle direction me tourner. celle là est un peu spécial car elle concerne du texte et non des calcules
Mon professeur d'informatique à l'air dépassé :(

mon problème :
je dois extraire en ligne de la colonne AO4 à AY4 la seul cellule qui comporte du texte (et il n'y aura qu'une seule cellule "texte" les autres sont obligatoirement vide
je veux reporter ce "texte" dans la cellule BA4

j'espère que j'ai été assez explicite, sinon dites le moi, j'essayerais d'expliquer mieux :eek:
merci d'avance pour votre aide (ça veut pas dire que je ne reviendrait pas vous remercier ;))
 

DoubleZero

XLDnaute Barbatruc
Re : formule cellule

Bonjour, EVYPIL, le Forum,

...Pour mon avant dernière formule...

Par formule, je ne sais pas :eek:.

Par macro, peut-être ainsi :

Code:
Option Explicit
Sub Quelle_est_la_valeur_texte()
Dim c As Range
For Each c In Range("ao4:ay4")
If IsNumeric(c) = False Then Range("ba4") = c
Next
End Sub

Bon courage et à bientôt :)

P. S. : Bonjour, ralph45
 
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : formule cellule

Bonjour,
Il faudrait un petit fichier exemple.
en attendant quelque chose comme :
Code:
=INDEX(A4:AY4;MAX(SI(NBCAR(AO4:AY4)=0;0;COLONNE(AO4:AY4))))
à valider en appuyant simultanément sur les trois touche ctrl+maj+enter (des {} doivent apparaître avant le = et après la dernière parenthèse)
Cordialement
 

EVYPIL

XLDnaute Nouveau
Re : formule cellule

Je tiens d'abord à vous remercier tous pour vos réponse rapide :D

j'ai pas tenté encore les macros, j'ai jamais fais :D

pour ce qui est de la réponse de Dugenou :

elle à marché à moitié, en fait j'ai mis la formule, mais elle m'as pris aussi ce qui était marqué dans la colonne A4
donc en regardant la formule je me suis dit doit y avoir erreur, et j'ai changer le chemin de la première cellule :

=INDEX(A4:AY4;MAX(SI(NBCAR(AO4:AY4)=0;0;COLONNE(AO4:AY4))))
changer en :
=INDEX(AO4:AY4;MAX(SI(NBCAR(AO4:AY4)=0;0;COLONNE(AO4:AY4))))

mais là ça marche pas la cellule me marque "#REF!"

je vais essayer de vous envoyer une scan du tableau ;)
voilà :D
scan promo.jpg
 

Pièces jointes

  • Promotions 2013 du 22-11-2013 copie.xlsx
    40.9 KB · Affichages: 33
Dernière édition:

EVYPIL

XLDnaute Nouveau
Re : formule cellule

je m'étonne moi-même, j'ai réussi à vous envoyer mon fichier ;)
je vous rassure, toutes les infos sont fausse concernant les noms des personnes, puisque je dois le présenter devant un jury, mais je n'avais pas le droit de le sortir de la société sans avoir changé nom et prénom des personnes

merci
 

Dugenou

XLDnaute Barbatruc
Re : formule cellule

Bonjour,
Il faut impérativement que la zone d'index commence en colonne A car la deuxième partie de la formule renvoie un N° de colonne.
la formule renvoie le contenu de la première colonne qaudn il n'y a aucune valeur dans la plage AO:AY

Je vous propose donc une formule modifiée pour traiter ce cas
=SIERREUR(INDEX(A4:AY9;MAX(SI(NBCAR(AO4:AY4)=0;-1;COLONNE(AO4:AY4))));"")
voir démo en pj
l'idéal serait de joindre une partie du fichier et non une image (aller en mode avancé et cliquer sur l'icone trombone)

Edit : avec le fichier d'origine
 

Pièces jointes

  • evypil.xlsx
    9.2 KB · Affichages: 32
  • evypil Promotions 2013 du 22-11-2013 copie.xlsx
    42.2 KB · Affichages: 29
Dernière édition:

EVYPIL

XLDnaute Nouveau
Re : formule cellule

Wahou !!!! un grand merci pour votre aide et votre rapidité, c'est super

pour mourir moins bête :
vous dites que "la formule à besoin d'une zone d'index en colonne A" est-ce que c'est une formule qu'il faut prévoir d'utilisé à l'avance car il faut laissé la colonne A vide de préférence ?

ce week-end je vais essayé de décrypter cette formule, pour mieux la comprendre

j'ai plus qu'à trouver la dernière formule, je reviendrais vers vous si je n'y arrive pas

encore un grand merci :D
 

Dugenou

XLDnaute Barbatruc
Re : formule cellule

Bonsoir,
J'ai écrit : qui commence en colonne A.
Je veux dire que le N° utilisé dans la formule INDEX(plage;N° ligne; N° colonne) reçoit comme N° colonne le résultat de la fonction COLONNE(AO4:AY4) donc un chiffre (entre 41 et 51) qui est le n° de colonne en partant de 1 pour la colonne A.
Si tu écris index(AO4:AY4;;41) tu obtient un joli #ref car il n'existe pas de 41eme colonne dans la zone AO:AY
si tu écris index(plage;;0) tu obtiens le contenu de la première colonne de la plage.
Une technique qu'utilisait Monique avant que la version 2007 (ou 2010) ne donne le SIERREUR(...;...) était de laisser la première ligne (ou la première colonne) vide ce qui permettait de ne rien afficher quand le résultat du N° de ligne (ou de colonne ) était 0.

Cordialement
 

Statistiques des forums

Discussions
312 332
Messages
2 087 362
Membres
103 529
dernier inscrit
verdier.christophe@outloo