Mettre cette formule en VBA

A voir également:Mettre cette formule en vbaCopier valeur cellule excel sans formule vba ✓ - Forum - Excel VBA - NE copier que la valeur et non la formule ✓ - Forum - VB / VBA Formula vba - Forum - Excel Problème de formule VBA Excel ✓ - Forum - Excel Formule VBA pour filtrage ✓ - Forum - Excel

Bonjour,
Je désirs faire ceci est en VBA.

=SI(CODE(STXT(A7;2;1))>=97;
GAUCHE(A7;EQUIV(VRAI;EXACT(STXT(A7;LIGNE($1:$255);3);MAJUSCULE(STXT(A7;LIGNE($1:$255);3)));0));
STXT(A7;EQUIV(FAUX;EXACT(STXT(A7;LIGNE($1:$255);3);MAJUSCULE(STXT(A7;LIGNE($1:$255);3)));0)+1;999))

Quelqu'un peut m'aider.

Merci

Forum

A voir également:Mettre cette formule en vbaCopier valeur cellule excel sans formule vba ✓ - Forum - Excel VBA - NE copier que la valeur et non la formule ✓ - Forum - VB / VBA Formula vba - Forum - Excel Problème de formule VBA Excel ✓ - Forum - Excel Formule VBA pour filtrage ✓ - Forum - Excel

Web: www.shapebootstrap.net

6 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,
T'aider... oui.
Le faire à ta place... non.

Qu'as tu essayé ?
Sur quoi bloques tu ?

Déjà.. tu pourrais commencer par gérer par petits morceaux avant d'essayer de tout mettre diretement...
par exemple.. pour remplacer les fonctions"gauche".. tu as LEFT
Pour "majuscule" c'est UCase
Le "si" c'est IF / Else...

Le stxt .. c'est "mid"

etc...

il suffit de chercher le mot sur internet en indiquant VBA .. et tu trouveras les équivalences sans souci.

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonsoir,

J'ai posté mon code, mais il ne s'affiche pas donc je e remet une fois.

Il ne fonctionne pas il m'indique des erreurs. quelqu'un peux m'aider

Merci

 If Mid(Cells(9, 1), 2, 1) >= 97 Then 'SI(CODE(STXT(A9;2;1))>=97     left(cells(9,1),Index(true,Exact(Mid(cells(9,1), Rows(1,255),3), UCase(Mid(cells(9,1),Rows(1,255,3))),0)) 'GAUCHE(A9;EQUIV(VRAI;EXACT(STXT(A9;LIGNE($1:$255);3);MAJUSCULE(STXT(A9;LIGNE($1:$255);3)));0)) Else     Mid(Cells(9,1),Index(False,Exact(Mid(cells(9,1),Rows(1,255,3), UCase(Mid(cells(9,1),Rows(1,255,3))),0)+1,999)) 'STXT(A9;EQUIV(FAUX;EXACT(STXT(A9;LIGNE($1:$255);3);MAJUSCULE(STXT(A9;LIGNE($1:$255);3)));0)+1;999))}" End If 

EDIT : Ajout des balises de code

Reply
réponses:
  • auteur

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

A1 il y a le nom de famille en majuscules et le prénom avec la 1ère lettre du prénom en majuscule et le reste en minuscule.

J'aimerai en
A2 j'aimerai le nom de famille
A3 le prénom

Si vous voyez comment faire par macro

Reply
réponses:
  • auteur

  • auteur

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Voici mon code il fonctionne, mais peut-être long ?

Private Sub CommandButton3_Click()  'Extraire les données séparées par un espace dans une chaine de caractères 'Sub extractionMots()     Dim Tableau() As String     Dim i As Integer          'découpe la chaine en fonction des espaces " "     Tableau = Split(Cells(1, 1))          'boucle sur le tableau pour visualiser le résultat     For i = 0 To UBound(Tableau)         'Le résultat s'affiche dans la fenêtre d'execution de l'éditeur de macros         Debug.Print Tableau(i)         Cells(1, i + 2) = Tableau(i)     Next i          If Cells(1, 2) = UCase(Cells(1, 2)) Then         If Cells(1, 3) = UCase(Cells(1, 3)) Then             Cells(1, 8) = Cells(1, 2) & " " & Cells(1, 3)                 If Cells(1, 4) <> "" And Cells(1, 5) = "" Then                     Cells(1, 9) = Cells(1, 4)                 Else                         If Cells(1, 4) <> "" And Cells(1, 5) <> "" And Cells(1, 6) = "" Then                             Cells(1, 9) = Cells(1, 4) & " " & Cells(1, 5)                         Else                                 If Cells(1, 4) <> "" And Cells(1, 5) <> "" And Cells(1, 6) <> "" Then                                     Cells(1, 9) = Cells(1, 4) & " " & Cells(1, 5) & " " & Cells(1, 6)                                 End If                         End If                 End If         Else             Cells(1, 8) = Cells(1, 2)         End If     End If End Sub


il me reste à l'intégrer dans une boucle.

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

Plus simple avec RegExp , classeur à télécharger:

http://boisgontierjacques.free.fr/pages_site/chainesvba.htm#RegExp

Sinon si tu tiens à ton code voilà une boucle sur la colonne A:

 Dim derniereLigne As Long  Dim j As Integer     derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A     For j = 1 To derniereLigne  'remplacer la ligne 1 par j dans ton code  Next j


Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Merci

Reply

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed