Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2925 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  macro Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

macro Excel

n°1311972
footelle
Posté le 23-02-2006 à 09:21:00  profilanswer
 

bonjour
 
je voudrais savoir s'il est possible qu'une macro s'exécute à chaque saisie dans une cellule
c'est à dire sans avoir à appuyer sur un bouton
 
mon problème est que je recherche une possiblité de savoir si plusieurs cases sont saisies (différentes de blanc)sur une meme ligne
j'ai 4 cellules à controler sur cette meme ligne, il ne m'en faut qu'une de saisie
 
si quelqu'un a une idée de génie et qu'il veuille bien m'en faire part
 
merci beaucoup

mood
Publicité
Posté le 23-02-2006 à 09:21:00  profilanswer
 

n°1311993
pilosite
Posté le 23-02-2006 à 10:00:52  profilanswer
 

question bête, mais pourquoi ne pas rajouter une colonne qui teste si plusieurs cases sont saisies ? peux tu être plus précis sur ton besoin?


---------------
Envie de scripting ? Lisez donc "Scripting Windows" aux Editions Eyrolles ! tout pour apprendre le scripting orienté infrastructure Microsoft, en français dans les textes et exemples.  http://www.eyrolles.com/Informatiq [...] 212116922/
n°1312016
watashi
La démotivation : JAMAIS !
Posté le 23-02-2006 à 10:35:31  profilanswer
 

Si tu veux lancer ton test en automatioque tu peux utiliser la Private Sub Worksheet_SelectionChange(ByVal Target As Range) ou Private Sub Worksheet_Change(ByVal Target As Range) de la feuille de calcul concernée.
Voilà un petit exemple simple de comment elle va fonctionner :

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Row = 1 Then
  3.     MsgBox ("Saisie en ligne 1" )
  4.     'tu peu aussi placer ici un call...
  5. End If
  6. If Target.Column = 2 Then
  7.     MsgBox ("Saisie en colone B" )
  8. End If
  9. End Sub


@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1312035
footelle
Posté le 23-02-2006 à 11:02:20  profilanswer
 

pilosite a écrit :

question bête, mais pourquoi ne pas rajouter une colonne qui teste si plusieurs cases sont saisies ? peux tu être plus précis sur ton besoin?


 
je n'ai pas trouvé comment formuler ma formule
mais c'est bien ce principe

n°1312040
footelle
Posté le 23-02-2006 à 11:04:39  profilanswer
 

watashi a écrit :

Si tu veux lancer ton test en automatioque tu peux utiliser la Private Sub Worksheet_SelectionChange(ByVal Target As Range) ou Private Sub Worksheet_Change(ByVal Target As Range) de la feuille de calcul concernée.
Voilà un petit exemple simple de comment elle va fonctionner :

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Row = 1 Then
  3.     MsgBox ("Saisie en ligne 1" )
  4.     'tu peu aussi placer ici un call...
  5. End If
  6. If Target.Column = 2 Then
  7.     MsgBox ("Saisie en colone B" )
  8. End If
  9. End Sub


@+


 
 
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

n°1312260
watashi
La démotivation : JAMAIS !
Posté le 23-02-2006 à 14:36:56  profilanswer
 

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 :
  1. Function TestSaisie(ByVal Ligne As Integer) As Boolean
  2. 'Fonction permettant de valider une saisie conforme
  3. 'pour une ligne donnée
  4. 'renvois true pour conforme
  5. 'Déclaration des variables
  6. Dim a As Integer
  7. a = 0
  8. 'Pour chaque colone concernée il faut placer une ligne comme ci dessous
  9. 'dans cells les 2, 3, 4 et 5 définissient le numéro des colonnes
  10. 'pour B, C, D, E
  11. 'A chaque fois que la cellule est remplie a augmente de 1
  12. If ActiveSheet.Cells(Ligne, 2).Value <> "" Then a = a + 1
  13. If ActiveSheet.Cells(Ligne, 3).Value <> "" Then a = a + 1
  14. If ActiveSheet.Cells(Ligne, 4).Value <> "" Then a = a + 1
  15. If ActiveSheet.Cells(Ligne, 5).Value <> "" Then a = a + 1
  16. 'test pour valider la saisie
  17. If a <= 1 Then '<= au nombre de colones pleines maximum
  18.     'Ta saisie est conforme
  19.     TestSaisie = True
  20. Else
  21.     TestSaisie = False
  22. End If
  23. End Function


L'appel dans la feuille pour test systèmatique

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. 'J' ai considéré que la plage de saisie commençait à la ligne 2
  3. If Target.Row > 2 Then
  4.     ' J'ai défini que le test porte sur les colonnes B à E
  5.     If Target.Column >= 2 And Target.Column <= 4 Then
  6.         If TestSaisie(Target.Row) = False Then
  7.             'Te vide la cellule qui vient d'être remplie
  8.             Target.Value = ""
  9.             'indique à l'utilisateur pourquoi c'est vidé
  10.             'Tu retrouve B C D E testé dans la fonction
  11.             MsgBox ("Vous ne pouvez saisir qu'une valeur dans les colones B, C, D, E" )
  12.         End If
  13.     End If
  14. End If
  15. End Sub


@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  macro Excel

 

Sujets relatifs
Macro excel relou à faire[excel - vba] Appel d'une macro dans une autre
[Excel] Fonction - appel a une macro comp.Mot de passe sur macro Excel
[Excel] Comment protéger une macro ? [Résolu][excel] application automatique d'une macro à une case
macro excel et fichier normal.dotMacro Conditionnelle sous EXCEL
Excel et macro[Excel] Executer une macro automatiquement au lancement d'un classeur
Plus de sujets relatifs à : macro Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR