watashi La démotivation : JAMAIS ! | footelle a écrit :
merci pour cette première information
maintenant je n'arrive pas à trouver le code qu'il me faut pour controler la saisie de plusieurs cellules sur la meme ligne
je suis plus que novice dans VB
|
Hummmmm t'as pas commencé par le plus simple
Tu as de la chance j'ai un peu de temps et je t'ai préparé un tit code. Pour le mettre en place:
dans visual basic éditor tu double clique sur la feuille concernée et tu colle tout ce que je t'ai mis en dessous. Je t'ai commenté le code, tu devrais pouvoir le modifier en cherchant un peu...
La fonction qui test : Code :
- Function TestSaisie(ByVal Ligne As Integer) As Boolean
- 'Fonction permettant de valider une saisie conforme
- 'pour une ligne donnée
- 'renvois true pour conforme
- 'Déclaration des variables
- Dim a As Integer
- a = 0
- 'Pour chaque colone concernée il faut placer une ligne comme ci dessous
- 'dans cells les 2, 3, 4 et 5 définissient le numéro des colonnes
- 'pour B, C, D, E
- 'A chaque fois que la cellule est remplie a augmente de 1
- If ActiveSheet.Cells(Ligne, 2).Value <> "" Then a = a + 1
- If ActiveSheet.Cells(Ligne, 3).Value <> "" Then a = a + 1
- If ActiveSheet.Cells(Ligne, 4).Value <> "" Then a = a + 1
- If ActiveSheet.Cells(Ligne, 5).Value <> "" Then a = a + 1
- 'test pour valider la saisie
- If a <= 1 Then '<= au nombre de colones pleines maximum
- 'Ta saisie est conforme
- TestSaisie = True
- Else
- TestSaisie = False
- End If
- End Function
|
L'appel dans la feuille pour test systèmatique
Code :
- Private Sub Worksheet_Change(ByVal Target As Range)
- 'J' ai considéré que la plage de saisie commençait à la ligne 2
- If Target.Row > 2 Then
- ' J'ai défini que le test porte sur les colonnes B à E
- If Target.Column >= 2 And Target.Column <= 4 Then
- If TestSaisie(Target.Row) = False Then
- 'Te vide la cellule qui vient d'être remplie
- Target.Value = ""
- 'indique à l'utilisateur pourquoi c'est vidé
- 'Tu retrouve B C D E testé dans la fonction
- MsgBox ("Vous ne pouvez saisir qu'une valeur dans les colones B, C, D, E" )
- End If
- End If
- End If
- End Sub
|
@+
---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
|