formule avec fenêtre d'avertissement

rené-b13

XLDnaute Nouveau
Bonjour.

j'ai beau chercher mais je ne trouve pas comment faire.

voici ce que j'ai fais avec mes modestes connaissances je suis débutant j'ai récupéré des bouts de codes et je les est modifié.

Je souhaiterais qu'une fenêtre d'avertissement s'ouvre lorsque l'on écrit plus de 4 fois le meme mot et non pas dans une cellule comme j'ai fais.

Merci d'avance pour vos éventuelles réponses.

René.
 

Pièces jointes

  • test.zip
    6 KB · Affichages: 26
  • test.zip
    6 KB · Affichages: 24
  • test.zip
    6 KB · Affichages: 23

pierrejean

XLDnaute Barbatruc
Re : formule avec fenêtre d'avertissement

bonjour rené

Une solution par macro evenementielle:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cel In ActiveSheet.UsedRange
 If cel.Value = "cc" Then totcc = totcc + 1
Next cel
If totcc >= 5 Then
  MsgBox ("Attention trop de cc !!!")
End If
End Sub
 

Pièces jointes

  • Xl0000008.zip
    8.9 KB · Affichages: 23
  • Xl0000008.zip
    8.9 KB · Affichages: 21
  • Xl0000008.zip
    8.9 KB · Affichages: 22

rené-b13

XLDnaute Nouveau
Re : formule avec fenêtre d'avertissement

Bonjour Pierrejean

merci pour cette réponse rapide votre solution fonctione parfaitement mais je ne me suis pas bien expliqué il faudrait que cela fonctione pour chaque ligne séparément j'ai un tableau avec des noms et il faudrait que le méssage ce déclanche pour chaque personnes si sur la ligne de toto il y a plus de 4 CC que cela ce déclanche que pour lui et non pas sur les autres cellules des autres ligne j'espere avoir été plus clair désolé je ne sais pas comment m'expliquer autrement.

merci René.
 

rené-b13

XLDnaute Nouveau
Re : formule avec fenêtre d'avertissement

re bonjour

Aprés réflection j'ai oublié de dire que j'avais 12 feuilles avec le meme tableau dans chaque feuille qui correspond aux 12 mois de l'année un mois par feuille Alors coment adapter le code que Pierrejean ma aimablement fait pour que le message ce déclanche si il y a plus de 4 CC dans n'importe quelle feuilles et toujours sur la meme ligne c'est a dire admeton qu'il y est 1 cc a la feuille 1 et deux CC a la feuille 4 et ainsi dessuite et arriver a 5 que le message detecte les 5 CC sur nimporte quelle feuille et si c'est possible que le dernier CC soit effacer de la cellule quand on ferme la fenetre du message.

Merci. René
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : formule avec fenêtre d'avertissement

Bonjour



Essaie de mettre le code de pierrejean

dans ThisWorkbook
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
For Each cel In ActiveSheet.UsedRange
 If cel.Value = "cc" Then totcc = totcc + 1
Next cel
If totcc >= 5 Then
  MsgBox ("Attention trop de cc !!!")
End If
End Sub

EDITION: je viens de tester, cela fonctionne pour chaque feuille
mais pas comme tu le voudrais
cela limite à 5 cc par feuille dans le classeur actif
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : formule avec fenêtre d'avertissement

Re


La cela semble fonctionner

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim cel As Range
Dim ws As Worksheet
For Each ws In Worksheets
For Each cel In ws.UsedRange
 If cel.Value = "cc" Then totcc = totcc + 1
Next cel
If totcc >= 5 Then
  MsgBox ("Attention trop de cc !!!")
End If
Next ws
End Sub
 

rené-b13

XLDnaute Nouveau
Re : formule avec fenêtre d'avertissement

re staple 1600

cela fontionne mais ça ajoute les autres lignes je souhaiterais que les ligne soient indépendantes seules la ligne concerné soit ajouter si il y a 3 cc sur la ligne 1 et que je rajoute 2 cc sur la ligne 2 qu'elle ne ce déclanche pas.

Merci.

René
 

Staple1600

XLDnaute Barbatruc
Re : formule avec fenêtre d'avertissement

Re



Après cela je laisse la main à pierrejean et aux autres forumeurs

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim cel As Range
Dim ws As Worksheet
Dim b As Long
For Each ws In Worksheets
b = Target.Row
    For Each cel In Range(Cells(b, 1), Cells(b, 255))
        If cel.Value = "cc" Then totcc = totcc + 1
    Next cel
        If totcc = 5 Then
        MsgBox ("Attention trop de cc !!!")
    End If
Next ws
End Sub
 

Discussions similaires

Réponses
1
Affichages
676

Statistiques des forums

Discussions
312 753
Messages
2 091 673
Membres
105 043
dernier inscrit
Gum110