Test a modifier

Salut a tous , forum salut,

Je fais des essais de tests afin d'apporter des améliorations dans ma compta.

Ci joint un fichier avec quelques explications dans une bulle et aussi dans le code.

1) un test pour replacer le curseur d'une colonne a gauche.

2) un test pour interdire d'entrer une valeur de zéro.

Ci-joint le fichier avec explicatifs a l'intérieur.

Merci a vous pour votre aide, bonne après midi.

Cdlt Raymond

14test-virement.xlsm (18.87 Ko)

Pourquoi une vba? fait une formule avec des si si(f31="";"ton texte"; "autre texte)

Salut jborm,

Merci pour ta réponse, mais je voudrai mettre deux couleurs et les mises formes conditionnels c'est pas mon truc.

la en fait il me reste deux tests a faire mais je n'y arrive pas et je préfère rester en VBA.

Merci a toi

Cdlt Raymond

Salut a tous,

Bon tant pis, merci tout de même

Ray

Bonjour,

Peut-être :

Private Sub Worksheet_Change(ByVal Target As Range)
   If Intersect(Target, Range("F31:F34")) Is Nothing Then Exit Sub
   Select Case Target.Value
   Case Is > 0                  'Si cellule non vide
      With Target.Offset(0, 1)
         .Value = "Versement en attente"
         .Font.ColorIndex = 3   'Rouge
      End With
   Case Is = ""                     'Si cellule vide
      With Target.Offset(0, 1)
         .Value = "Versement effectuer"
         .Font.ColorIndex = 4   'Vert
      End With
   Case Is = 0
      Target = ""
   End Select
   If Application.WorksheetFunction.CountIf(Range("F31:F34"), 0) = 0 Then Range("G31:G34").ClearContents
End Sub

Joseph

Salut retraite8,

Merci a toi pour le retour fichier,.

J'ai essayer mais ca fonctionne pas, aucun message ne s'affiche en G31:G34

merci pour le fichier.

Cdlt Ray

Bonjour,

Un problème avec la dernière ligne, c'est corrigé.

Private Sub Worksheet_Change(ByVal Target As Range)
   If Intersect(Target, Range("F31:F34")) Is Nothing Then Exit Sub
   Select Case Target.Value
   Case Is > 0                  'Si cellule non vide
      With Target.Offset(0, 1)
         .Value = "Versement en attente"
         .Font.ColorIndex = 3   'Rouge
      End With
   Case Is = ""                     'Si cellule vide
      With Target.Offset(0, 1)
         .Value = "Versement effectuer"
         .Font.ColorIndex = 4   'Vert
      End With
   Case Is = 0
      Target = ""
   End Select
   If Application.WorksheetFunction.CountA(Range("F31:F34")) = 0 Then Range("G31:G34").ClearContents
End Sub

Joseph

Re salut retraite8,

Merci pour le fichier corrigé, c'est bon ca fonctionne.

Serait t'il possible svp de rajouter un code qui empêche de ne rien

entrer dans la zone G31:G34 cellules réserver uniquement au texte ci-dessous.

"Versement en attente" 'Rouge

"Versement effectuer" 'Vert

et que le curseur reste dans la zone F31:F34.

Merci d'avance a toi.

Cdlt Ray

Bonjour eliot, retraite8, jborm, le forum,

Un autre essai....sur le même principe que retraite8,

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, Range("F31:F34")) Is Nothing Then
     If Target.Count > 1 Then Exit Sub
     If IsNumeric(Target.Value) = False Then MsgBox "Saisir une valeur numérique": Target.Select: Exit Sub

      Select Case Target.Value
       Case Is > 0                          'si valeur numérique > 0
        With Target.Offset(0, 1)
         .Value = "Versement en attente"
         .Font.Color = vbRed
        End With
       Case Is = ""                         'si cellule vide
        With Target.Offset(0, 1)
         .Value = "Versement effectuer"
         .Font.Color = vbGreen
        End With
       Case Is = 0                          'si cellule= 0, on considère qu'elle est vide
        With Target
         .Value = ""
        End With
       End Select
    End If
End Sub

Cordialement,

Bonjours,

Serait t'il possible svp de rajouter un code qui empêche de ne rien

entrer dans la zone G31:G34 cellules réserver uniquement au texte ci-dessous.

Ajoute ce nouveau code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Not Intersect(Target, Range("G31:G34")) Is Nothing Then Target.Offset(0, -1).Select
End Sub

Joseph

Salut joseph,

Merci beaucoup et bien vu, pour que le curseur reste dans la colonne voulu, nickel.

Donc tout y marche bien comme souhaiter.

Bonne soirée et encore mille fois merci pour ta contribution.

Bien cordialement Raymond

et merci également a jborm, et xorsankukai

Rechercher des sujets similaires à "test modifier"