Macro Excel en 2007

Sined9612 Messages postés 5 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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

5 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
  2. Sined9612 Messages postés 5 Statut Membre
     
    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
  3. Sined9612 Messages postés 5 Statut Membre
     
    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
  4. Maurice
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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