problème sur vb - conditions multiples

rh.finances

XLDnaute Junior
bonjour à tous,

je viens vers vous et ce superbe site pour soumettre un problème que je n'arrive pas du tout à régler.
le fichier joint au présent envoi comprend une feuille intitulée "modèle" sur laquelle je souhaite créer la condition suivante:
si dans la base de donnée D8-D45, apparait le mot "monétisation" (référencé en H7) ou le mot "RAFP" (référencé en H8) et que le "solde_créditeur" figurant en D47 est <= 20, alors : message d'erreur.

sachant que la base de données D8-D45 comprend déjà une validation de données, j'ai essayé tant bien que mal de passer par visual basic pour arriver à mes fins, mais n'étant pas vraiment expert dans ce domaine, je n'ai que des messages d'erreur. voilà le dernier code que j'ai essayé de rentrer:

Code:
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("type").Value = H7 And Range("solde_crediteur").Value <= 20 Then
MsgBox "opération impossible", vbRetryCancel + Apparence + TypeDeBox, "non"
Select Case Reponse
Case vbRetry
Case vbCancel
End Select
End If

If Range("type").Value = H8 And "solde_crediteur" <= 20 Then
MsgBox "opération impossible", vbRetryCancel + Apparence + TypeDeBox, "non"
Select Case Reponse
Case vbRetry
Case vbCancel
End Select
End If

End Sub

si quelqu'un peut me venir en aide, ce serait vraiment sympa!!
d'avance, merci beaucoup !! :)

Alex
 

Pièces jointes

  • RECAP JOURS.zip
    26.2 KB · Affichages: 22

Staple1600

XLDnaute Barbatruc
Re : problème sur vb - conditions multiples

Bonjour


Quand tu utilises un Select Case

Code:
Select Case Reponse 
Case vbRetry
[COLOR=SeaGreen] 'ici une action si condition vraie[/COLOR]
Case vbCancel 
[COLOR=SeaGreen]'ici une autre action si condition vraie[/COLOR]
End Select

Edition: bonjour mon bon Monsieur Job
Il faudra qu'un jour je vous soumette un nouveau problème lié aux mathématiques
comme ce fut le cas jadis (merci encore pour l'aide apportée à l'époque)
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : problème sur vb - conditions multiples

Bonjour rh.finances, salut Staple,

Pas bien compris, mais essayez cette macro :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("type")) Is Nothing Or Target.Count > 1 Then Exit Sub

If (Target = Range("H7") Or Target = Range("H8")) And Range("solde_crediteur").Value <= 20 Then
MsgBox "Opération impossible !", 48
Target = ""
SendKeys "%{Down}"
End If

End Sub

Elle se déclenche sur le choix dans une liste déroulante en colonne D.

Curieux que le solde créditeur en E47 soit égal à un nombre de jours...

A+
 

Pièces jointes

  • RECAP JOURS(1).zip
    25.4 KB · Affichages: 33

rh.finances

XLDnaute Junior
Re : problème sur vb - conditions multiples

Bonjour Stapple1600 et Job75.

Merci beaucoup pour votre aide et l'intérêt porté à mon problème.
j'ai essayé ta formule Job et ça marche impeccable. c'est exactement ce dont j'avais besoin!!

merci, merci, merci beaucoup pour ce coup de pouce :) !!

Alex
 

job75

XLDnaute Barbatruc
Re : problème sur vb - conditions multiples

Re,

Au cas où l'entrée en colonne D se ferait manuellement sans utiliser la liste de validation, compléter avec le code en rouge :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("type")) Is Nothing Or Target.Count > 1 Then Exit Sub

If (Target = Range("H7") Or Target = Range("H8")) And Range("solde_crediteur").Value <= 20 Then
MsgBox "Opération impossible !", 48
Target = ""
[COLOR="Red"]Target.Select[/COLOR]
SendKeys "%{Down}"
End If

End Sub

A+
 

Discussions similaires

Réponses
7
Affichages
514

Statistiques des forums

Discussions
312 098
Messages
2 085 267
Membres
102 845
dernier inscrit
Baticle.geo