Mettre cette formule en VBA
Fermé
viret1290
Messages postés
141
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
28 juillet 2024
-
25 août 2019 à 17:21
viret1290 Messages postés 141 Date d'inscription samedi 17 août 2013 Statut Membre Dernière intervention 28 juillet 2024 - 26 août 2019 à 21:25
viret1290 Messages postés 141 Date d'inscription samedi 17 août 2013 Statut Membre Dernière intervention 28 juillet 2024 - 26 août 2019 à 21:25
A voir également:
- Mettre cette formule en VBA
- Formule si et - Guide
- Excel mise en forme conditionnelle formule - Guide
- Formule somme excel colonne - Guide
- Formule excel moyenne - Guide
- Formule - Télécharger - Études & Formations
6 réponses
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mars 2025
4 740
25 août 2019 à 17:44
25 août 2019 à 17:44
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.
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.
viret1290
Messages postés
141
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
28 juillet 2024
2
Modifié le 25 août 2019 à 19:09
Modifié le 25 août 2019 à 19:09
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
EDIT : Ajout des balises de code
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
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mars 2025
4 740
25 août 2019 à 19:16
25 août 2019 à 19:16
Et la fonction index ?
Et la fonction Exact ?
Tu ne les transformes pas en "vba" ?
Et tu fais quoi des lignes qui sont dans ton if/else ? Tu ne les stockes pas dans une variable ou afficher le résultat dans une cellule ?
De plus, il ne suffit pas de transformer une formule mot à mot pour que ça marche.
parfois il est préférable de changer un peu le raisonnement....
Que souhaites tu réaliser exactement ?
Et la fonction Exact ?
Tu ne les transformes pas en "vba" ?
Et tu fais quoi des lignes qui sont dans ton if/else ? Tu ne les stockes pas dans une variable ou afficher le résultat dans une cellule ?
De plus, il ne suffit pas de transformer une formule mot à mot pour que ça marche.
parfois il est préférable de changer un peu le raisonnement....
Que souhaites tu réaliser exactement ?
viret1290
Messages postés
141
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
28 juillet 2024
2
25 août 2019 à 19:55
25 août 2019 à 19:55
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
J'aimerai en
A2 j'aimerai le nom de famille
A3 le prénom
Si vous voyez comment faire par macro
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mars 2025
4 740
25 août 2019 à 19:59
25 août 2019 à 19:59
Tu fais in split avec comme séparateur l'espace et le tour est joué
viret1290
Messages postés
141
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
28 juillet 2024
2
25 août 2019 à 20:13
25 août 2019 à 20:13
Comment faire si le nom de famille est composé (VASQUEZ PINTO José)
viret1290
Messages postés
141
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
28 juillet 2024
2
Modifié le 25 août 2019 à 22:26
Modifié le 25 août 2019 à 22:26
Voici mon code il fonctionne, mais peut-être long ?
il me reste à l'intégrer dans une boucle.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié le 26 août 2019 à 14:43
Modifié le 26 août 2019 à 14:43
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:
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
viret1290
Messages postés
141
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
28 juillet 2024
2
26 août 2019 à 21:25
26 août 2019 à 21:25
Merci