Aide sur ajouter commentaires - VBA

fvg

XLDnaute Nouveau
Bonsoir,

je débute en VBA .... je galere donc.....
je cherche à générer une macro dont les caractéristiques seraient les suivantes:

  1. Détection du contenu d'une cellule d'une feuille appelée "montage".
  2. Si la cellule sélectionnée est vide ou = 0
  3. ajouter commentaire avec le message suivant: " une opération sans frais n'existe pas, merci de corriger".
  4. apres correction.. donc, quand la cellule est différente à 0 (mais je voudrais pouvoir tester cette valeur suivant différents pourcentages de la valeur de transaction... mais c'est secondaire....) donc apres correction, disparition du commentaire....

on pourrait envisager également par une msgbox, mais je souhaite que la macro se déclenche à l'ouverture de la feuille...

merci de votre aide.....

J'ai un peu de mal à mettre en oeuvre les explications proposées....
je vous joins un exemple de mon tableau...
pour l'instant je travaille avec une msgbox, mais non satisfaisante.
 

Pièces jointes

  • montage.zip
    20.1 KB · Affichages: 110
  • montage.zip
    20.1 KB · Affichages: 114
  • montage.zip
    20.1 KB · Affichages: 112
Dernière édition:

cbea

XLDnaute Impliqué
Re : Aide sur ajouter commentaires - VBA

Bonsoir fvg, Guiv,

Voici une autre solution :
- Déclaration d'une procédure :
Code:
Sub Detection(Cell As Range)
    ' Effacer le commentaire
    Cell.ClearComments
    ' Si le contenu de la cellule = 0 ou vide, mettre un commentaire
    If Cell.Value = "" Or Cell.Value = 0 Then
        With Cell.AddComment
            .Visible = False
            .Text "Une opération sans frais n'existe pas, merci de corriger"
        End With
    End If
End Sub

- Appel de la procédure :
Code:
Call Detection(Worksheets("Montage").Range("B2").Value)
 

fvg

XLDnaute Nouveau
Re : Aide sur ajouter commentaires - VBA

Merci beaucoup pour vos réponses....
j'avais réussi avec msgbox, mais je restais sec au niveau des comments et de la détection.....

j'en apprends tous les jours un peu sur le vba, mais l'enregistreur de macro recele parfois certaines surprises quand on veut modifier des macro enregistrées.
 

fvg

XLDnaute Nouveau
Re : Aide sur ajouter commentaires - VBA

Bonsoir fvg, Guiv,

Voici une autre solution :
- Déclaration d'une procédure :
Code:
Sub Detection(Cell As Range)
    ' Effacer le commentaire
    Cell.ClearComments
    ' Si le contenu de la cellule = 0 ou vide, mettre un commentaire
    If Cell.Value = "" Or Cell.Value = 0 Then
        With Cell.AddComment
            .Visible = False
            .Text "Une opération sans frais n'existe pas, merci de corriger"
        End With
    End If
End Sub

- Appel de la procédure :
Code:
Call Detection(Worksheets("Montage").Range("B2").Value)
merci pour votre aide....

Sub Detection(Cell As Range)
' Effacer le commentaire
Cell.ClearComments
' Si le contenu de la cellule = 0 ou vide, mettre un commentaire
If Cell.Value = "" Or Cell.Value = 0 Then
With Cell.AddComment
.Visible = False
.Text "Une opération sans frais n'existe pas, merci de corriger"
End With
End If
End Sub- Appel de la procédure :

Code:
Call Detection(Worksheets("Montage").Range("B2").Value)

si je comprends bien, c'est l'appel de procédure qui indique au programme dans quelle cellule travailler....

petite question..... comment insere la ligne call détection.
doit on faire une deuxieme procédure sub ?

deuxieme petite question....
comment rédigeriez vous un commentaire alternatif du type:

Si le montant de la cellule est inférieure au montant d'une autre cellule (soit les frais et droits) * 0.01 ----> dans ce cas nouveau message type ("Montant probablement sous évalué"). quel que soit le mode de rédaction, que j'utilise VBA me renvoie des erreurs (surement liées à la manipulation de cette petite formule).
 

cbea

XLDnaute Impliqué
Re : Aide sur ajouter commentaires - VBA

bonjour fvg, Guiv,

L'appel de la procédure était un exemple :
Code:
Call Detection(Worksheets("Montage").Range("B2").Value)

Cela doit s'adapter à ton cas.

Comment s'ajoute le commentaire ? A la saisie d'une valeur dans la cellule, à la sélection d'une valeur ?
Pourrais-tu joindre un exemple de fichier pour mieux comprendre ?

Merci

PS : Bonjour pierrejean
 
Dernière édition:

cbea

XLDnaute Impliqué
Re : Aide sur ajouter commentaires - VBA

re bonjour à tous,

Si je peux me permettre, la solution de pierrejean peut également être écrite comme cela :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cell As Range

    For Each Cell In Target
        Call Detection(Cell)
    Next Cell
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Aide sur ajouter commentaires - VBA

Re
Re

Exact cbea :)

J'y avais un peu pensé mais il m'a paru plus logique de considerer le cas de la saisie dans une seule cellule

ps: bien entendu tu peux (voire même tu dois) te permettre des alternatives
Je me suis bien permis de completer ton code !!
 

Guiv

XLDnaute Occasionnel
Re : Aide sur ajouter commentaires - VBA

Bonsoir fvg, le fil,
Réponse un peu tardive pour fvg:

Target représente un objet Range. Sans plus de précision, il représente toutes les cellules et toutes les plages de ta feuille.
Pour restreindre à une plage (ou à une cellule):

If Not Intersect(Target, TaPlage) Is Nothing Then
TonCode
End If


Cordialement,
Guiv
 

pierrejean

XLDnaute Barbatruc
Re : Aide sur ajouter commentaires - VBA

Re

Je me permet de rectifier

Target est l'objet Range qui a conduit au changement de la feuille
Si une seule cellule a été modifiée Target est cette cellule ; si une plage a été modifiée, Target est cette plage (cas de l'effacement d'une plage)
Pour s'en convaincre tester avec msgbox( Target.address )

Si l'on veut réagir au changement d'une cellule (par ex A1)

Code:
if Target.Address="$A$1" Then
'ou
'if Target.Address(0,0)="A1" Then
  code
end if
 

fvg

XLDnaute Nouveau
Re : Aide sur ajouter commentaires - VBA

Ci apres mon doc de travail....

je n'arrive pas à appliquer vos solutions....
 

Pièces jointes

  • montage.zip
    20.1 KB · Affichages: 105
  • montage.zip
    20.1 KB · Affichages: 108
  • montage.zip
    20.1 KB · Affichages: 115

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 812
dernier inscrit
abdouami