Afficher un cercle si

Bonjour,

j'aimerai que excel m'affiche un cercle autour d'une cellule (B6, par exemple) seulement si la cellule B6 continent la lettre "a".

Si la cellule B6 est vide alors le cercle disparaît.

Voir image.

PS : j'aimerai plutôt avoir la forme de la PJ plutôt qu'un cercle normal.

Merci

repere a

Bonjour,

Une piste qui ne gère pas encore le fait d'enlever un a, mais gère le fait qu'on en ajoute un :

38forme.xlsm (15.31 Ko)

Le programme se trouve dans la feuil1 sous vba dans worksheet change

bonjour

sallut aupassage Ausecours

mon avis perso de moi

ne pas faire de telles fioritures qui compliquent (juste pour faire "pro" )

une MFC suffit pour signaler des cellules sous condition

mais ce n'est que mon avis d'Excellien qui peut maintenir en état de marche sans difficultés des fichiers de plus de 20 ans.

et qui parfois font un détour par OOOBase ou même Lotus 123 !

quel que soit ton choix, bon travail

amitiés excelliennes

Bonjour jmd,

Je suis d'accord avec toi que c'est une fioriture pas utile mais bon, pour le principe d'apprendre à faire ça m'intéressait

Rebonjour à tous,

Pour l'intérêt de savoir comment faire, j'ai fais un programme qui s'occupe d'ajouter ou enlever des formes en fonction de la valeur de la cellule, il est commenté pour une meilleure compréhension

Voici le résultat :

31forme.xlsm (15.66 Ko)

Tu peux supprimer tous les a ça enlèvera toutes les formes, si tu remplis tout de a d'un coup, ça va toutes les mettre, et ainsi de suite.

bonjour

sallut aupassage Ausecours

mon avis perso de moi

ne pas faire de telles fioritures qui compliquent (juste pour faire "pro" )

une MFC suffit pour signaler des cellules sous condition

mais ce n'est que mon avis d'Excellien qui peut maintenir en état de marche sans difficultés des fichiers de plus de 20 ans.

et qui parfois font un détour par OOOBase ou même Lotus 123 !

quel que soit ton choix, bon travail

amitiés excelliennes

Salut,

si tu as une Mise en forme cond. avec un cercle qui englobe une cellule je suis preneur.

Merci

Rebonjour à tous,

Pour l'intérêt de savoir comment faire, j'ai fais un programme qui s'occupe d'ajouter ou enlever des formes en fonction de la valeur de la cellule, il est commenté pour une meilleure compréhension

Voici le résultat :

forme.xlsm

Tu peux supprimer tous les a ça enlèvera toutes les formes, si tu remplis tout de a d'un coup, ça va toutes les mettre, et ainsi de suite.

Salut,

Merci pour le excel, peux tu modifier le code pour qu'il s'applique que à la cellule F5, sltp.

Et aussi la police du "a" soit à 28 en HELVETICA.

Merci beaucoup.

ton message de 1:12 pm

arf... non

à part les fonctionnalités toutes faites, je sèche. Mais comme je fais sans depuis des lustres, et que Crosoft n'a pas jugé la demande suffisante et n'a fait aucun effort....

note que c'est facile dans un DGBD, du simple fait qu'on peut superposer des champs. Ce qui est impossible en Excel.

pour le fun, on peut imaginer toutes sortes de délires, et se faire plaisir en les programmant

mais hors du cadre du travail, car toute fioriture diminue la fiabilité d'une appli

bon travail,

amitiés

Rebonjour à tous,

Pour l'intérêt de savoir comment faire, j'ai fais un programme qui s'occupe d'ajouter ou enlever des formes en fonction de la valeur de la cellule, il est commenté pour une meilleure compréhension

Voici le résultat :

forme.xlsm

Tu peux supprimer tous les a ça enlèvera toutes les formes, si tu remplis tout de a d'un coup, ça va toutes les mettre, et ainsi de suite.

Salut,

Merci pour le excel, peux tu modifier le code pour qu'il s'applique que à la cellule F5, sltp.

Et aussi la police du "a" soit à 28 en HELVETICA.

Merci beaucoup.

Bonjour,

Il suffit que tu rajoutes :

if not intersect(cel,Range("F5")) is nothing then
    [...]
end if

Pour la police tu peux la mettre toi non? J'ai fais le plus gros du travail :p

Oui effectivement je peux modifier la police seul.

En revanche je suis débutant en VBA et j'essaye de rajouter tes lignes en plus, pour prendre en compte que la cellule F5 mais je n'y arrive pas :/

Pouvez vous m'aider, merci.

Rebonjour,

Dans ce cas je t'ai ajouté ça

J'ai préfèré faire un tout premier test pour voir si la cellule F5 est dans la sélection, sinon ça ne sert à rien de passer à la suite du programme, j'ai ensuite remis le test 2 fois pour voir si oui ou non la cellule en cours est la cellule F5.

Je te laisse voir:

Sur votre excel ca marche bien, en revanche pas sur le mien, j'ai copié tout simplement la macro...

Peut être qu'il faut directement indiquer sur la macro de prendre en compte que la cellule F5. (attention elle fusionné à d'autre cellule sur mon excel).

En fusionnant ça "marche" de mon côté, seulement je n'avais pas prévu que la cellule soit fusionnée, donc je n'ai pas prévu qu'il fallait que la forme suive la fusion...

Voici un résultat marchant par fusion :

Elle demande de passer par merge area de la cellule F5 et non plus seulement par la cellule F5

C'est bon ça marche, MERCI!

Enfaîte je viens comprendre la problème d'avant...

J'ai cette macro qui ne marche plus du coup...

  If Target.Address = "$R$6" Then
      activesheet.Unprotect "??"
    '-- suppression
    For Each s In activesheet.Shapes
      If s.Type = 13 Then
        If s.TopLeftCell.Address = Target.Offset(0, -11).Address Then
          s.Delete
        End If
      End If
    Next s
    '--
    If Target <> "" Then
        Sheets("DONNEES").Shapes(Target).Copy
        Target.Offset(0, 2).Select
        activesheet.Paste
        Selection.ShapeRange.Left = ActiveCell.Left - 867
        Selection.ShapeRange.Top = ActiveCell.Top + 8
        Target.Select
     End If
     activesheet.Protect "??", True, True, True

  End If

Honnêtement je ne vois pas trop à quoi sert cette macro et en plus je vois plein de selection... ça a presque l'air d'avoir été fait via l'enregistreur de macro

Elle sert à afficher une image en fonction d'une valeur de cellule.

(Un peu comme la macro du cercle).

Idées?

MERCI

Alors dans ce cas ce n'est pas ma macro qui fait que ça ne fonctionne plus

J'ai jeté un rapide coup d'oeil à ta macro et le soucis vient de ton selection.shaperange

Le soucis avec ça c'est que si ton image n'est pas sélectionnée ça plante, il faut donc l'appeler via

activesheet.shapes("nomdetonimage")

le mieux pour faire ça c'est de stocker ton image dans une variable objet de la façon suivante :

set image = activesheet.shapes("nomdetonimage")

et après de faire des trucs du genre :

with image
    .Left = ActiveCell.Left - 867
    .Top = ActiveCell.Top + 8
end with

et ne pas oublier de libérer de la mémoire une fois que tu as finis d'utiliser ton image:

set image = nothing

Pour ton code, activecell ne sert pas, tu peux directement utiliser target, par contre attention, ton programme plantera si tu as plusieurs cellules dans target...

Encore merci pour vos réponses.

Alors en gros le nom de mon image correspond au nom de la cellule R6.

If Target <> "" Then
        Sheets("DONNEES").Shapes(Target).Copy
        Target.Offset(0, 2).Select
        activesheet.Range ("R6")

        With image
    .Left = ActiveCell.Left - 867
    .Top = ActiveCell.Top + 8
        End With

     End If

Je crois qu'il y a un petit problème, non?

Merci

Bonjour,

le code corrigé d'après moi:

EDIT:

If Target <> "" Then
    Sheets("DONNEES").Shapes(Target).Copy
    set image  = activesheet.Paste
    set cel = Target.Offset(0, 2)

    With image
        .Left = cel.Left - 867
        .Top = cel.Top + 8
    End With

    set image = nothing
    set cel = nothing

End If
Rechercher des sujets similaires à "afficher cercle"