Formule en VBA

Bonjour

Je voudrais mettre cette formule en VBA.

=SI(GAUCHE(A3;4)="Mme "; STXT(A3;5;255); SI(GAUCHE(A3;3)="M. "; STXT(A6;4;255); A3))

Je vous remercie

Max

A quel endroit ?

Fais un enregistrement de macro et tu as la réponse ...

En A7,

    ActiveCell.FormulaR1C1 = _
        "=IF(LEFT(R[-4]C,4)=""Mme "", MID(R[-4]C,5,255), IF(LEFT(R[-4]C,3)=""M. "", MID(R[-1]C,4,255), R[-4]C))"

Bonjour,

voici une possibilité,

Select Case Left(Range("A3"), 3)
Case "Mme": t = Mid(Range("A3"), 5, 255)
Case "M. ": t = Mid(Range("A6"), 4, 255)
Case Else: t = Range("A3")
End Select
ActiveCell = t

Bonjour i20100

J'ai un message d'erreur Variable non définie sur t

Merci

Max

Bonjour i20100

J'ai un message d'erreur Variable non définie sur t

Merci

Max

il faut déclarer la variable

Dim t As String

Re

Et pourquoi sa ne fonctionne pas?

Re

Et pourquoi sa ne fonctionne pas?

je ne suis pas devin

peux-tu joindre ton fichier ?

Re

OK

Bonjour

Je voudrais mettre cette formule en VBA.

=SI(GAUCHE(A3;4)="Mme "; STXT(A3;5;255); SI(GAUCHE(A3;3)="M. "; STXT(A6;4;255); A3))

Je vous remercie

Max

les données du fichier transmit ne vont pas bien avec ta formule ?

Je pense qu'il y avait une erreur dans l'énoncé ... entre A3 et A6 !

2 solutions (et il y en a d'autres, mais je préfère la seconde) :

Sub transpose()
Dim i%
For i = 5 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 2).FormulaR1C1 = _
        "=IF(LEFT(RC[-1],4)=""Mme "", MID(RC[-1],5,255), IF(LEFT(RC[-1],3)=""M. "", MID(RC[-1],4,255), RC[-1]))"
Next
End Sub
Sub autre_solution()
Dim i%
For i = 5 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 2).Value = Replace(Replace(Cells(i, 1).Value, "M. ", ""), "Mme ", "")
Next
End Sub
Rechercher des sujets similaires à "formule vba"