Si texte gras, copier ailleurs (débutant)

Résolu
Patrack33 Messages postés 10 Statut Membre -  
Patrack33 Messages postés 10 Statut Membre -
Bonjour,

Je cherche une macro qui recherche dans la colone B s'il y a un texte en gras, et si oui qui copie le texte dans la colone A à la ligne n+1

par exemple :

si B17 est en gras , copier B17 en A18

Une ame charitable pour me venir en aide ?

6 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    A adapter

    Sub Test()
    Dim dLig As Long
    Dim i As Long
    
    dLig = Range("B1").End(xlDown).Row
    For i = 1 To dLig
        If Range("B" & i).Font.Bold = True Then
            Range("A" & i + 1).Value = Range("B" & i).Value
        End If
    Next i
    
    End Sub

    0
  2. Patrack33 Messages postés 10 Statut Membre
     
    Bonjour ,

    je viens de tester ta macro et le message d'erreur "execution '1004' : La méthode 'Range' de l'objet '_Global' a échoué " apparait.

    à la ligne :
    If Range("B" & i).Font.Bold = True Then

    (je suis désolé de poser des questions idiotes , mais je suis vraiment néophyte)
    0
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Faire un test avec ça:

    Sub Test()
    Dim dLig As Long
    Dim i As Long
    
    With Sheets(1)  ' A adapter --- Mettre la ref de l'onglet qui doit être traité
    dLig = .Range("B1").End(xlDown).Row
    For i = 1 To dLig
        If .Range("B" & i).Font.Bold = True Then
            .Range("A" & i + 1).Value = .Range("B" & i).Value
        End If
    Next i
    End With
    
    End Sub


    Chez moi ça fonctionne quand je suis sur la feuille active.

    Idem pour la boucle, il faut mettre For i = (la première ligne à tester)
    Si la cellule B1 est vide, la macro plante !!!

    0
  4. Patrack33 Messages postés 10 Statut Membre
     
    ça marche !
    Merci Polux

    sauf que sur mon fichier à traiter, il y a beaucoup de lignes ayant la case b vide et qu'effectivement dans ce cas la macro s'arrête à la 1ère ligne vide ...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Alors il faut changer le mode de recherche de la dernière cellule vide comme ça:

    dLig = .Range("B" & Rows.Count).End(xlUp).Row

    0
  7. Patrack33 Messages postés 10 Statut Membre
     
    Désolé ta 1ere propo était la bonne , je ne sais juste pas écrire
    un Grand merci à toi Polux !
    0