VBA : formule if find then else
Résolu
Equitysentinel
Messages postés
5
Statut
Membre
-
Equitysentinel Messages postés 5 Statut Membre -
Equitysentinel Messages postés 5 Statut Membre -
Bonjour,
Je souhaite créer un programme VBA qui me permettrait de réaliser l'action suivante :
Si dans la cellule Bx (1,2,3,4,5,...) on trouve "D_CTY_BRENT" , alors dans la cellule Cx correspondante (1,2,3,4,...) on met "BRENT".
Sinon la cellule Cx = Bx
Si jamais vous avez une idée pour ce petit programme, n'hésitez pas à m'en faire part.
Thx,
Je souhaite créer un programme VBA qui me permettrait de réaliser l'action suivante :
Si dans la cellule Bx (1,2,3,4,5,...) on trouve "D_CTY_BRENT" , alors dans la cellule Cx correspondante (1,2,3,4,...) on met "BRENT".
Sinon la cellule Cx = Bx
Si jamais vous avez une idée pour ce petit programme, n'hésitez pas à m'en faire part.
Thx,
A voir également:
- VBA : formule if find then else
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
9 réponses
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.
Thx, effectivement, pas besoin de programme, en fait ce qui ne marchait pas était la fonction search de ma formule
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
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
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.
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
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.