VBA : formule if find then else
Résolu/Fermé
Equitysentinel
Messages postés
5
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
24 mai 2011
-
24 mai 2011 à 09:45
Equitysentinel Messages postés 5 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 24 mai 2011 - 24 mai 2011 à 11:24
Equitysentinel Messages postés 5 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 24 mai 2011 - 24 mai 2011 à 11:24
A voir également:
- VBA : formule if find then else
- Incompatibilité de type vba ✓ - Forum Programmation
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Vba dernière colonne non vide ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
9 réponses
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 306
24 mai 2011 à 09:49
24 mai 2011 à 09:49
Bonjour,
pas besoin de passer par une macro, simplement écrire cette formule en Cx :
en remplaçant x par le numéro de ligne.
Cordialement.
pas besoin de passer par une macro, simplement écrire cette formule en Cx :
=SI(Bx = "D_CTY_BRENT";"BRENT";"Bx)
en remplaçant x par le numéro de ligne.
Cordialement.
Equitysentinel
Messages postés
5
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
24 mai 2011
24 mai 2011 à 09:52
24 mai 2011 à 09:52
Thx, effectivement, pas besoin de programme, en fait ce qui ne marchait pas était la fonction search de ma formule
Christof422
Messages postés
867
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
8 février 2015
212
Modifié par Christof422 le 24/05/2011 à 10:37
Modifié par Christof422 le 24/05/2011 à 10:37
Voici une solution en vb net (cela doit pouvoir s'adapter en vba)
'Déclaration des variables Dim appExcel As Excel.Application 'Application Excel Dim wbExcel As Excel.Workbook 'Classeur Excel Dim wsExcel As Excel.Worksheet 'Feuille Excel 'Ouverture de l'application appExcel = CreateObject("Excel.Application") 'Ouverture d'un fichier Excel wbExcel = appExcel.Workbooks.Open(openfiledialog1.FileName) 'wsExcel correspond à la première feuille du fichier wsExcel = wbExcel.Worksheets(1) Dim j as integer For j=1 To 5 If wsExcel.Cells(j,2).Value="D_CTY_BRENT" Then wsExcel.Cells(j,3).Value="BRENT" Else wsExcel.Cells(j,3).Value=wsExcel.Cells(j,2).Value End if Next j
Equitysentinel
Messages postés
5
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
24 mai 2011
24 mai 2011 à 10:00
24 mai 2011 à 10:00
En fait, j'aurais besoin d'une formule plus poussée afin de faire un search car le nom présent dans Bx n'est pas "D_CTY_BRENT" exactement mais "D_CTY_BRENT.............." .
Du coup j'aimerais faire un search pour voir si on trouve dans les cellules Bx "D_CTY_BRENT" ou ""D_CTY_COPPER" ou "D_CTY_GOLD"
Je ne sais pas trop comment arranger ma formule avec if ( search (...or...or...) ; (BRENT or COPPER or GOLD); BX)
Du coup j'aimerais faire un search pour voir si on trouve dans les cellules Bx "D_CTY_BRENT" ou ""D_CTY_COPPER" ou "D_CTY_GOLD"
Je ne sais pas trop comment arranger ma formule avec if ( search (...or...or...) ; (BRENT or COPPER or GOLD); BX)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 306
24 mai 2011 à 10:07
24 mai 2011 à 10:07
Bonjour,
un exemple visuel avec un fichier serait plus parlant.
vous pouvez nous adresser un petit fichier d'une dizaine de ligne avec ce que vous souhaitez obtenir.
Pour nous envoyer un fichier, allez sur le site cijoint.fr et coller le lien obtenu dans un nouveau message.
Cordialement.
un exemple visuel avec un fichier serait plus parlant.
vous pouvez nous adresser un petit fichier d'une dizaine de ligne avec ce que vous souhaitez obtenir.
Pour nous envoyer un fichier, allez sur le site cijoint.fr et coller le lien obtenu dans un nouveau message.
Cordialement.
Christof422
Messages postés
867
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
8 février 2015
212
Modifié par Christof422 le 24/05/2011 à 10:36
Modifié par Christof422 le 24/05/2011 à 10:36
dim cellule1 as range cellule1 = wsexcel.Range("A1:IV65500").Find("D_CTY_BRENT") If not cellule1 Is Nothing Then wsExcel.Cells(cellule1.Row,3).Value="BRENT" End if
Equitysentinel
Messages postés
5
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
24 mai 2011
24 mai 2011 à 10:27
24 mai 2011 à 10:27
http://www.cijoint.fr/cj201105/cijpMOL1dj.jpg
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 306
24 mai 2011 à 10:53
24 mai 2011 à 10:53
Essayez avec cette formule en C1(un peu compliqué mais qui devrait marcher) :
Puis placer le curseur en bas à droite jusqu'à ce qu'il ressemble à une petite croix, et double cliquer.
=SI(ESTERREUR(TROUVE("BRENT";B1));SI(ESTERREUR(TROUVE("COOPER";B1));SI(ESTERREUR(TROUVE("GOLD";B1));B1;"GOLD");"COOPER");"BRENT")
Puis placer le curseur en bas à droite jusqu'à ce qu'il ressemble à une petite croix, et double cliquer.
Equitysentinel
Messages postés
5
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
24 mai 2011
24 mai 2011 à 11:24
24 mai 2011 à 11:24
Merci pour toutes les réponses, la dernière formule a très bien marché, merci beaucoup. !!