Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Condition dans VBA sous Excel avec un format

  • Initiateur de la discussion Initiateur de la discussion Aurèle
  • 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 !

A

Aurèle

Guest
Bonjour,

Je suis actuellement en stage et je suis bloquée sur un truc un peu bête.

Est il possible d'écrire la condition suivante :

Si le caractère dans ma cellule est de type "23/123456" alors sa valeur dans une autre colonne est "DAP".
Si le caractère est de type "23/123tn01" alors sa valeur dans l'autre colonne est "TRB".

Je dis bien de type car ça peut tout aussi bien être "12/456825" pour le premier. Tous les caractères de type "chiffre, chiffre/chiiffre,chiiffre,chiiffre,chiiffre,chiiffre,chiiffre"

J'ai écrit le code suivant :
if Worksheets("Feuil1").Cells(1, 1).value = "00/000000" then Worksheets("Feuil1").Cells(1, 2).value ="DAP"
mais évidemment ça ne marche pas !

Alors si vous pouviez maider assez rapidmeent car si je ne peux pas avancer demain, je suis plutôt mal :-(

Merci
 
Bonjour Aurèle, le forum

essaye ce code

A+

if IsNumeric(Right(Worksheets("Feuil1").Cells(1, 1).value, 6)) then
Worksheets("Feuil1").Cells(1, 2).value ="DAP"
else
Worksheets("Feuil1").Cells(1, 2).value ="TRB"
end if
 
Merci bcp yeahou !

Mais il faudrait que je sache comment dire également que un caractère du type "12/23tn01" ait pour valeur dans l'autre cellule TRB. Car en fait je t'ai simplifié le problème, j'ai bcp plus de conditions que ça normalement.

Merci si tu peux m'aider
 
rebonjour aurèle

tu mets la condition à tester dans le else, tout dépend du test que tu désires, celui la teste la présence de la chaine tn dans la cellule

A+

if IsNumeric(Right(Worksheets("Feuil1").Cells(1, 1).value, 6)) then
Worksheets("Feuil1").Cells(1, 2).value ="DAP"
else
if instr(1,Right(Worksheets("Feuil1").Cells(1, 1).value,"tn", 1))>0 then
Worksheets("Feuil1").Cells(1, 2).value ="TRB"
end if
end if
 
Remerci encore une fois mais en fatit, les deux lettres du milieu peuvent être n'importe lesquelles, et pas forcément tn, c'est là la dificulté.

je ne sais pas comment dire : il y a deux lettres au milieu (en encore ce n'est pas forcément le milieu)

. Si tu as la réponse, merci bcp !
 
Bonjour Aurèle, le forum

la je ne comprends pas trop ton problème
le premier code fait cela
si la chaine testée est numérique condition 1
si elle ne l'est pas (elle contient des caractères non numériques) condition 2
cela correspond bruyamment à ce que tu dis dans ton dernier post.
le deuxième code teste la présence d'une chaine donnée et peux donc traiter tout les cas de figure que tu évoques.
Si cela ne te va pas, il faut que tu expliques pourquoi, notamment les tests que tu veux.


Cordialement, A+
 
- 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

Réponses
7
Affichages
705
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…