Macro : Afficher le contenu d'une cellule

Bonjour,

Je suis en train de créer une macro excel qui me sert entre autres à vérifier que le contenu de plusieurs cellules ne dépasse pas X caractères. J'arrive bien à remplir les cellules qui ne remplissent pas la condition d'un fond jaune. Je souhaite aussi créer une boite de dialogue comme celle ci ("la cellule titre contient 58 caractères"). Pour l'instant, j'arrive au résultat suivant (la cellule contient 58 caractères").

Si la cellule B1 ne rempli pas la condition, j'aimerais que la macro écrive le texte de la cellule A1. Par exemple si dans A1 il est écrit bonjour, et que B1 ne rempli pas le condition, alors j'aimerais que la boite de dialogue écrive, le champs bonjour ne rempli pas le condition

Cette fonction doit être basique, je suis débutant sous VB.

Je vous joint ci dessous la partie du code qui pose problème

Merci

For Each cell In Range("B1:C10")

If Len(cell) > limit Then

MsgBox "la cellule comporte : " & Len(cell.Text) & " caractères "

cell.Interior.ColorIndex = 27

Else

cell.Interior.ColorIndex = 0

Bonjour,

Si j'ai bien comprit, après l'instruction ELSE, tu peux mettre ce code :

MsgBox Range("A1") & " ne remplit pas la condition"

"Limit" correspond à 58 ??

Amicalement

Dan

Bonjour,

si j'ai tout compris :

Sub controle()
Dim limit As Byte, cell As Range
limit = 6
For Each cell In Range("B1:C10")
    If Len(cell) > limit Then
        MsgBox Cells(cell.Row, 1) & " comporte : " & Len(cell) & " caractères "
        cell.Interior.ColorIndex = 27
    Else
        cell.Interior.ColorIndex = 0
    End If
Next cell
End Sub

PS : détermines ta limite à la ligne limit = ???

Bonjour,

Oui c'est bien cela!

Merci bien pour ces précisions

J'ai une nouvelle interrogation,

Le code MsgBox Cells(cell.Row, 1) permet d'afficher le contenu d'une cellule suivante. Comme j'ai besoin d'afficher le contenu d'une cellule précédente, j'écrit le code MsgBox Cells(cell.Row, -1),mais je reçois le message "erreur 1004" quand j'exécute la macro. Je ne comprend pas??

Bonjour,

Petite erreur : le code MsgBox Cells(cell.Row, 1) ne permet pas d'afficher le contenu de la cellule suivante.

cell.Row renvoie le numéro de ligne de la cellule active.

1 est un numéro de colonne, donc colonne A. Donc ton erreur vient du fait que la colonne -1 n'existe pas...

Si tu as besoin d'afficher le contenu de la cellule précédente (A2 pour B2, B4 pour C4,.... attention toutefois à ne pas essayer d'afficher une précédente à la colonne A...)

Essayes avec :

MsgBox cell.Offset(0, -1)

Offset(décalage de lignes, décalage de colonnes)

Ca fonctionne comme cela en effet,

merci bien!

Rechercher des sujets similaires à "macro afficher contenu"