XL pour MAC Problème de date dans une formule simple (qui renvoie une erreur)

didcac

XLDnaute Occasionnel
Bonjour à tous,
J'ai créé une formule de concaténation en BXD1 où je dois entre autres faire ressortir seulement l'année (à partir d'une date) et j'ai procédé ainsi :
'=CONCATENER(BXG1;" ";A1;" ";(ANNEE(BXF1)))

A1 BXD1 BXE1 BXF1 BXG1
Wimbledon ici, ma formule 5 sets DATE 17/07/2014 Tournoi

donne : Tournoi Wimbledon 2014
Mais s'il n'y a pas de date présente, cela donne :
Tournoi Wimbledon 1900 !!!!
Je ne veux rien voir apparaître comme année, dans ce cas.
Auriez-vous une idée ? Comment faut-il corriger ma syntaxe ?
Merci d'avance de votre aimable aide.
 

didcac

XLDnaute Occasionnel
Bonsoir JHA,
Merci bien, ça fonctionne !

Sinon, au cas où vous sauriez faire du "découpage" de données, j'ai une liste avec un canevas très précis (et systématique). J'ai d'abord :
1 à 4 noms en majuscules
puis 9 à 12 chiffres (qui ont des espaces en séparateur de milliers)
et 1 à 5 mots séparés par des virgules.
Donc TEXTE / CHIFFRES / TEXTE.
Je sais que cela se fait mais je ne me rappelle plus de la syntaxe.

Exemple (dans une seule cellule A1) :

PIERRE BRUNEAU 1 713 102 450 Restauration, traiteur

L'idée est de répartir en 3 colonnes :
B1 : PIERRE BRUNEAU
C1 : 1 713 102 450
D1 : Restauration, traiteur

Pensez-vous connaître la solution ?
Merci.
 

didcac

XLDnaute Occasionnel
Bonjour JHA,
Merci pour cette tentative, mais hélas, effectivement, cela ne marche pas... Le résultat est anarchique, avec des bouts de mots à droite et à gauche.
Je crois que c'était en VBA, avec la notion de paramétrer des variables, les considérer comme des "strings" et dire "tant que le string est TEXTE continuer jusqu'à avant les CHIFFRES (et coller le premier string complet), puis pareil tant que le string CHIFFRE est avant du TEXTE, le coller dans une autre cellule, et après c'est genre coller le troisième String une fois à la fin.
Voilà, en substance, le principe. Et comme je ne sais pas bien agencer les Macros...
 

job75

XLDnaute Barbatruc
Bonjour didcac, JHA,

Oui quand on complique les choses il faut du VBA.

Voyez le fichier joint et cette fonction VBA :
VB:
Function Eclater(t$)
Dim i%, j%, a$(2)
For i = 1 To Len(t)
    If IsNumeric(Mid(t, i, 1)) Then Exit For
Next
For j = Len(t) To 1 Step -1
    If IsNumeric(Mid(t, j, 1)) Then Exit For
Next
If j = 0 Then j = i 'si aucun chiffre
a(0) = Left(t, i - 1)
a(1) = Mid(t, i, j - i + 1)
a(2) = Mid(t, j + 1)
Eclater = a 'vecteur horizontal
End Function
Le code doit être placé impérativement dans un module standard.

Le résultat est une matrice et la validation matricielle se fait en bloc sur 3 cellules, le calcul est plus rapide.

A+
 

Pièces jointes

  • Eclater(1).xlsm
    15.7 KB · Affichages: 3

didcac

XLDnaute Occasionnel
Bonsoir Job75,
Waouh !! C'est superbe. Ça a parfaitement marché, merci beaucoup !!
Excel a de sacrés possibilités, quand on maîtrise bien. Bravo.

A tout hasard, connaissez-vous FileMaker Pro ? Et le langage JSON ?
 

didcac

XLDnaute Occasionnel
Bonjour,
J'ai des cellules qui expriment des tranches : 100/110, soit 2 nombres séparés par un SLASH.
Si j'ai en A1 : 100/110, j'aimerais bien obtenir en B1 : 100 et en C1 : 110
sachant qu'il peut y avoir des tranches à 4 chiffres, genre 2100/2300 (et avoir 2100 et 2300).
Pensez-vous connaître la formule adéquate ?
J'ai essayé avec quelques formules vues avant, mais ça ne marche pas correctement (contexte pas systématiquement adapté).

Merci à vous !
 

didcac

XLDnaute Occasionnel
Bonjour job75,
Cela marche parfaitement, merci !!

Une question pratique : lorsque l'on souhaite faire une recherche avec la commande Rechercher/Remplacer, a-t-on la possibilité de définir au préalable une zone où faire cette opération ? De manière à ne pas balayer tout le document (lorsqu'on fait TOUT remplacer), cette "zone" étant d'un "bloc" évidemment, pas 3 cellules par ci et 7 cellules par là (car j'imagine que ce n'est pas possible).

Merci.
 

job75

XLDnaute Barbatruc
Bonjour didcac,
Une question pratique : lorsque l'on souhaite faire une recherche avec la commande Rechercher/Remplacer, a-t-on la possibilité de définir au préalable une zone où faire cette opération ?
Cela fait 11 ans que vous êtes inscrit ici donc au moins 11 ans que vous pratiquez Excel.

Vous devriez savoir que généralement on sélectionne des lignes ou colonnes avant d'utiliser Rechercher...

Et la sélection multiple de plages disjointes ne pose aucun problème, il suffit de tester...

A+
 

didcac

XLDnaute Occasionnel
Bonjour job75,
Eh bien figurez-vous que non... Je l'ai toujours utilisé pour faire des recherches sur la totalité d'une feuille, donc la question ne s'est jamais posée avant aujourd'hui... J'ai donc testé, et c'est très bien comme fonctionnalité, en effet, quand on doit segmenter.

Et justement, dans un autre registre, devant faire une segmentation cette fois un peu différente, je cherche à isoler un mot ou suite de lettre bien définie d'une cellule. Sans doute y a-t-il une fonction simple pour cela ?
L'idée serait :
A2 : présence de plusieurs mots (minuscules et/ou majuscules) et chiffres, dont par exemple "tennis" (écrit en réalité sans les guillemets)
B2 : cellule faisant apparaître uniquement le mot "tennis"
C2 : emplacement (par exemple) de la syntaxe effectuant l'opération.
D2 : même syntaxe, mais avec cette fois 2 mots ou plus (s'il y a par exemples "tennis" "football" "polo" dans la cellule initiale A1, obtenir ces 3 mots copiés en B2 avec par exemple côté présentation un seul espace entre 2 mots consécutifs).

NB : j'ai mis arbitrairement 2 colonnes ne sachant pas si vous pourriez créer une syntaxe couvrant les 2 cas de figure (1 mot & plusieurs mots), mais sinon une syntaxe généraliste à 1 ou plusieurs mots (placée en C2 ou D2) conviendrait parfaitement.

Merci de votre bien aimable aide !
 

job75

XLDnaute Barbatruc
Bonjour didcac,

Je n'ai rien compris.

De toute façon ça n'a rien à voir avec le sujet de ce fil, créez une nouvelle discussion.

En vous efforçant d'être clair (l'expression "segmentation" n'a aucun sens).

A+
 

Discussions similaires