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

Microsoft 365 Aide pour placer un message box en cas d'erreur

bonoboas

XLDnaute Occasionnel
Bonjour
Je me permets de vous solliciter de nouveau pour placer un message box en cas d'erreur.

Voici le code :
VB:
 Sub Collage_données()
If ActiveSheet.Name <> "Anciennes_valeurs" Then
MsgBox "Désolé mais vous devez selectionner la feuille nommée Anciennes_valeurs pour lancer la macro"
Else

    Dim couleur As Long
    'couleur = ActiveCell.Interior.Color
    couleur = RGB(255, 242, 204)

    For Each c In ActiveSheet.UsedRange
If Not IsError(c.Interior.Color = couleur) Then
    MsgBox "Pas de cellule en font jaune"
            Exit Sub
        End If
        If c.Interior.Color = couleur Then
            Colonne = c.Column
            Ligne = c.Row
            [ZoneColler_collectif].Cells(Ligne, Colonne) = c
            End If
   
    Next
    MsgBox "Toutes les valeurs en fond jaune ont été copiées"
     End If
End Sub


Je dois placer un message box lorsqu'il n'y pas de cellule en jaune
j'ai essayé avec :
VB:
If Not IsError(c.Interior.Color = couleur) Then

    MsgBox "Pas de cellule en font jaune"

            Exit Sub

        End If
Mais ça ne fonctionne pas
Merci d'avance pour votre aide
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Bonoboas,
C'est à la fin de l'examen de toutes les cellules qu'on doit décider s'il n'y a pas eu de cellules jaune.
Un essai possible :
VB:
Sub Collage_données()
    If ActiveSheet.Name <> "Anciennes_valeurs" Then
        MsgBox "Désolé mais vous devez selectionner la feuille nommée Anciennes_valeurs pour lancer la macro"
    Else
    Dim couleur As Long
    'couleur = ActiveCell.Interior.Color
    couleur = RGB(255, 242, 204)
    YellowFlag = 0  ' Flag=1 si une cellule jaune trouvée
    For Each c In ActiveSheet.UsedRange
        If c.Interior.Color = couleur Then
            Colonne = c.Column
            Ligne = c.Row
            [ZoneColler_collectif].Cells(Ligne, Colonne) = c
            YellowFlag = 1
        End If
    Next
    If YellowFlag = 1 Then
        MsgBox "Toutes les valeurs en fond jaune ont été copiées"
    Else
        MsgBox "Pas de cellule en font jaune trouvées."
    End If
End Sub
 

Discussions similaires

Réponses
32
Affichages
969
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…