Macro Excel en 2007

Fermé
Sined9612 Messages postés 5 Date d'inscription lundi 22 septembre 2014 Statut Membre Dernière intervention 23 septembre 2014 - 22 sept. 2014 à 15:43
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 22 sept. 2014 à 18:57
Bonjour,

Je cherche une macro me permettant de mettre en majuscules, certains mots (liste de 14 mots prédéfinis) du contenu de toutes les cellules d'une feuille de calcul.
Je suis en excel 2007.

Merci par avance de votre aide.
Si quelqu'un a déjà ce genre d'outil, je suis peneur, car urgent.
Cordialement

Denis
A voir également:

5 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
22 sept. 2014 à 16:11
Bonjour,

Essaie ceci:

Sub WorkbookFind()
Dim myValue As String
myValue = InputBox("Entrez le mot à rechercher", "Recherche", "Monmot")
What = myValue
  If What = "" Then Exit Sub
  For Each sht In Worksheets
    sht.Activate
    Set Found = sht.Cells.Find(What)
    If Not Found Is Nothing Then
      FirstAddress = Found.Address
      Do
        Found.Activate
        ActiveCell.FormulaR1C1 = StrConv(myValue, vbUpperCase)
        Response = MsgBox("Continuer ?", vbYesNo + vbQuestion)
        If Response = vbNo Then Exit Sub
        Set Found = Cells.FindNext(After:=ActiveCell)
        If Found.Address = FirstAddress Then Exit Do
      Loop
    End If
  Next sht
  MsgBox "Recherche terminée !"
End Sub


PS Le titre n'est pas très explicit pour les prochaines recherches!
0
Sined9612 Messages postés 5 Date d'inscription lundi 22 septembre 2014 Statut Membre Dernière intervention 23 septembre 2014
22 sept. 2014 à 16:31
Si je ne m'abuse, cette macro recherche uniquement par rapport à un mot qui est rentré dans l'inputbox.
Pour ma part, je souhaite que toutes les occurrences d'une liste de mots contenues dans une plage de cellules soient mises en majuscule
0
Sined9612 Messages postés 5 Date d'inscription lundi 22 septembre 2014 Statut Membre Dernière intervention 23 septembre 2014
22 sept. 2014 à 16:34
Ex : liste de mots à mettre en majuscule ("poisson", "oeuf")

contenu A1 = titi, oeuf
contenu A2 = poisson, oeuf
contenu A3 = poisson

Résultat après traitement

A1 = titi, OEUF
A2 = POISSON, OEUF
A3 = POISSON
0
Bonjour

si tu a que quelque mots

Sub TestMaj()
For L = 1 To 3
Var = Cells(L, 1).Value
Var = Replace(Var, "poisson", UCase("poisson"))
Var = Replace(Var, "oeuf", UCase("oeuf"))
Cells(L, 1).Value = Var
Next
End Sub

A+
Maurice
0

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
22 sept. 2014 à 18:57
Je ne savait pas qu'il y avait plusieurs noms dans la même cellule. J'ai donc pris le code de Maurice pour changer en majuscule.

Un UserForm, un Bouton et une listBox où l'on mettra les noms à rechercher. On fera une boucle sur tous les noms en lançant la macro WorkbookFind
Les noms sont dans la colonne B, à adapter

Voici le code:

Dim nom As String
Private Sub CommandButton1_Click()
  Dim i As Integer
    'Les index des Listbox commencent par zéro
    For i = 0 To ListBox1.ListCount - 1
      nom = ListBox1.List(i)
    WorkbookFind
    Next i
End Sub
Sub WorkbookFind()
If nom = "" Then Exit Sub
  For Each sht In Worksheets
    sht.Activate
    Set Found = sht.Cells.Find(nom)
    If Not Found Is Nothing Then
      FirstAddress = Found.Address
      Do
        Found.Activate
         ActiveCell.FormulaR1C1 = Replace(ActiveCell.FormulaR1C1, nom, UCase(nom))
       ' Response = MsgBox("Continuer ?", vbYesNo + vbQuestion)
       ' If Response = vbNo Then Exit Sub
        Set Found = Cells.FindNext(After:=ActiveCell)
        If Found.Address = FirstAddress Then Exit Do
      Loop
    End If
  Next sht
 ' MsgBox "Recherche terminée !"
End Sub
Private Sub UserForm_Initialize()
ListBox1.List() = Range("B1:B2").Value 'adapter au nombre de noms à rechercher
End Sub

0