Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Resolu] slt svp aide moi

  • Initiateur de la discussion Initiateur de la discussion ahcene
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

ahcene

Guest
HTML:
bnjr les amis svp aide moi 
je veux  faire en vba une fonction qui calcule le nbr de répétition des lettres dans une phrase 
par exemple dans la phrase "vba exel"
le resulta est : v=1
                      b=1
                      a=1
                      e=2
                      x=1
                      l=1
svp aide moi 
merci d avance
 
Dernière modification par un modérateur:
Re : slt svp aide moi

merci les amies
mais c pas comme ca
la programmation doit etre dans un nouveau module
est le resulat juste les lettre utiliser ..pas toute l alphabet
 
Dernière modification par un modérateur:
Re : slt svp aide moi

Bonjour,
Tu peux nous fournir un fichier exemple avec resultats souhaites faites mauellement???
Aller en mode avance ==> Gerer les pieces jointes
Amicalement
 
Re : slt svp aide moi

Bonjour Habitude,
Pour moi j'avoue que j'ai rien compris,
@ 13:29 j'ai lui demande de nous fournir un fichier exemple avec resultats souhaites...
@ 14:19 il a changer son message vers : PHP
??????
 
Re : slt svp aide moi

Bonjour Habitude,
Pour moi j'avoue que j'ai rien compris,
@ 13:29 j'ai lui demande de nous fournir un fichier exemple avec resultats souhaites...
@ 14:19 il a changer son message vers : PHP
??????
desole mais j pa vu ta réponse
pour l exemple
je n c pa comment faire
ce soire je te donne un exemple de voyelle car j n l ai pa trouver
merci
 
Re : slt svp aide moi

Bonjour ahcene, salut Rachid, Habitude,

Une solution avec cette fonction macro :

Code:
Function ANALYSE$(txt$, ordre%)
'utilise UCase pour que la casse ne soit pas prise en compte
Dim d As Object, i%, c$, n%
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To Len(txt)
  c = Mid(txt, i, 1)
  If c <> " " And Not d.Exists(UCase(c)) Then
    d(UCase(c)) = UCase(c)
    If d.Count = ordre Then Exit For
  End If
Next
If d.Count < ordre Then Exit Function
For i = 1 To Len(txt)
  If UCase(Mid(txt, i, 1)) = UCase(c) Then n = n + 1
Next
ANALYSE = c & " = " & n
End Function
La restitution se fait sur une même ligne.

Formule en B2, à tirer à droite, puis vers le bas :

Code:
=ANALYSE($A2;COLONNES($B2:B2))

Nota : la fonction utilise UCase pour ne pas tenir compte de la casse.

S'il faut en tenir compte, supprimer les 5 UCase.

Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : slt svp aide moi

merci 'Rachid_0661' & 'job75' & 'Habitude'
tous vos reponse sont juste mais c pas ca que veu
il faut pas utiliser une feuille
la premier en choisie un nouveau module dans insertion "alt+f11"
puis en tape le code directement
en fait un msgbox pour demander a l utilisateur d entrer une phrase
et dans le resultat l affichage des lettre utiliser dans la phrase et le nbr de répétition
 
Dernière modification par un modérateur:
Re : slt svp aide moi

Re ahcene,

A votre service.

Code:
Sub AnalyseTexte()
'utilise UCase pour que la casse ne soit pas prise en compte
Dim txt$, mes$, d As Object, i%, c$, j%, n%
txt = InputBox("Entrer le texte à analyser :", "Analyser")
If txt = "" Then Exit Sub
mes = "Il n'est pas tenu compte de la casse" & vbLf & vbLf & _
  "Texte analysé : " & txt & vbLf
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To Len(txt)
  c = Mid(txt, i, 1)
  If c <> " " And Not d.Exists(UCase(c)) Then
    d(UCase(c)) = UCase(c)
    n = 0
    For j = i To Len(txt)
      If UCase(Mid(txt, j, 1)) = UCase(c) Then n = n + 1
    Next
    mes = mes & vbLf & c & " = " & n
  End If
Next
MsgBox mes, , "Analyse"
End Sub
Fichier (2).

Edit : remplacé For j = 1 To Len(txt) par For j = i To Len(txt)

Bonne nuit
 

Pièces jointes

Dernière édition:
Re : slt svp aide moi

merci merci du font du cœur chere ami
bn8 a toi aussi
 
Re : slt svp aide moi

Bonjour ahcene, le forum,

Vous avez effacé le texte original du post #1 !!!

Soyez gentil remettez-le pour que des visiteurs comprennent le problème 🙂

En attendant voici une autre solution avec un UserForm :

Code:
Private Sub TextBox1_Change()
'utilise UCase pour que la casse ne soit pas prise en compte
Dim txt$, d As Object, i%, c$, j%, n%
txt = TextBox1
With ListBox1
  .Clear
  If txt <> "" Then .AddItem 'encadre la liste
  Set d = CreateObject("Scripting.Dictionary")
  For i = 1 To Len(txt)
    c = Mid(txt, i, 1)
    If c <> " " And Not d.Exists(UCase(c)) Then
      d(UCase(c)) = UCase(c)
      n = 0
      For j = i To Len(txt)
        If UCase(Mid(txt, j, 1)) = UCase(c) Then n = n + 1
      Next
      .AddItem c & " = " & n
    End If
  Next
  If txt <> "" Then .AddItem 'encadre la liste
  .Height = Application.Max(18, (.Font.Size + 2) * .ListCount + 2)
  DoEvents
  Me.Height = .Height + 105
End With
End Sub
Fichier (3).

A+
 

Pièces jointes

Re : slt svp aide moi

Bonjour @ tous,
Un grand salut @u prof job75,
Vous avez effacé le texte original du post #1 !!!
Soyez gentil remettez-le pour que des visiteurs comprennent le problème 🙂
Mais l'essentiel, c'est qu'il n'a pas oublie de dire que le prob est Resolu...
Amicalement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
27
Affichages
2 K
Réponses
7
Affichages
829
L
  • Question Question
Réponses
3
Affichages
768
Réponses
6
Affichages
735
R
Réponses
2
Affichages
700
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…