VBA si valeur cellule= 0 decalage de cellule de sasie

bruno66

XLDnaute Occasionnel
bonjour le forum malgré mainte manipulation afin d'automatiser mon tableau en saisie , je vous est mis un fichier avec le parcours de la saisie
le fichier parleras mieux que de long discours en attendant je continue mes recherche ,je suis arrive a ce niveau ma selection des cellules a saisir


Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$3" Then Range("H3").Select
If Target.Address = "$H$3" Then Range("G5").Select
If Target.Address = "$G$18" Then Range("F19").Select
If Target.Address = "$F$19" Then Range("f21").Select
If Target.Address = "$F$21" Then Range("G21").Select
If Target.Address = "$G$21" Then Range("F22").Select ' si 21=0 aller directement en F32
If Target.Address = "$F$22" Then Range("G22").Select
If Target.Address = "$G$22" Then Range("F23").Select
If Target.Address = "$F$23" Then Range("G23").Select
If Target.Address = "$G$23" Then Range("F24").Select
If Target.Address = "$F$24" Then Range("G24").Select
If Target.Address = "$G$24" Then Range("F25").Select
If Target.Address = "$F$25" Then Range("G25").Select
If Target.Address = "$G$25" Then Range("F26").Select
If Target.Address = "$F$26" Then Range("G26").Select
If Target.Address = "$G$26" Then Range("F27").Select
If Target.Address = "$F$27" Then Range("G27").Select
If Target.Address = "$G$27" Then Range("F28").Select
If Target.Address = "$F$28" Then Range("G28").Select
If Target.Address = "$G$28" Then Range("F29").Select
If Target.Address = "$F$29" Then Range("G29").Select
If Target.Address = "$G$29" Then Range("F30").Select
If Target.Address = "$F$30" Then Range("G30").Select
If Target.Address = "$G$30" Then Range("F31").Select
If Target.Address = "$F$31" Then Range("G31").Select
If Target.Address = "$G$31" Then Range("F32").Select
If Target.Address = "$F$32" Then Range("F36").Select
If Target.Address = "$F$36" Then Range("G43").Select
If Target.Address = "$G$43" Then Range("G45").Select 'si g43 =0 aller directement en H70
If Target.Address = "$G$45" Then Range("G46").Select
If Target.Address = "$G$46" Then Range("G47").Select
If Target.Address = "$G$47" Then Range("G48").Select
If Target.Address = "$G$69" Then Range("H70").Select


End Sub



je cherche le moyen pour descendre directement en cellule decaler directement en cellule si une valeur 0 est mise dans la plage $F$21:$f$31
merci du coup de main par avance
 

Pièces jointes

  • essais decalage cellule.xlsm
    28.3 KB · Affichages: 48
Dernière édition:
C

Compte Supprimé 979

Guest
Re : VBA si valeur cellule= 0 decalage de cellule de sasie

Salut Bruno66

Voici un code à tester
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Rng As String
  Rng = Target.Address(0, 0)
  Select Case Rng
  Case "D3"
    Range("H3").Select
  Case "H3"
    Range("G5").Select
  Case "F21" To "F31"
    If Target.Value = 0 Then
      Target.Offset(11, 0).Select
    Else
      Target.Offset(0, 1).Select
    End If
  Case "G21" To "G31"
      Target.Offset(1, -1).Select
  Case "F36"
    Range("G43").Select
  Case "G43" To "G68"
    If Target.Value = 0 Then
      Target.Offset(27, 0).Select
    Else
      Target.Offset(0, 1).Select
    End If
  Case Else
    Target.Offset(1, 0).Select
  End Select
End Sub

A+
 

bruno66

XLDnaute Occasionnel
Re : VBA si valeur cellule= 0 decalage de cellule de sasie

bonjour bruno45 ... ton code fourni , doit avoir un souci.. juste dans le premier post que j'ai mis un commentaire si 0 direct cellule en haut cela fonctionne parfaitement
si tu peux me modifier par rapport a mon code initiale je cherche toujours de mon coté
amicalement et merci de ton aide
 
C

Compte Supprimé 979

Guest
Re : VBA si valeur cellule= 0 decalage de cellule de sasie

Re,

Essaye de lire et de comprendre le code qui est simplissime :rolleyes:

Je croyais que c'étais lors de la saisie dans la colonne F,
A modifier
Code:
  Case "F21" To "F31"
      Target.Offset(0, 1).Select
  Case "G21" To "G31"
    If Target.Value = 0 Then
      Target.Offset(11, 0).Select
    Else
      Target.Offset(1, -1).Select
    End If

A+
 

bruno66

XLDnaute Occasionnel
Re : VBA si valeur cellule= 0 decalage de cellule de sasie

re bonjour et désole de ma reponse tardive ,n'ayant pas le fichier final sous les yeux.. m'apercevant aussi que je me suis très mal expliquer par ailleur dans mon premier post ..
j'ai remis le fichier avec le resultat exact a obtenir , le fichier ci joint doit arrivé a cela au final aussi avec toutes mes excuses a Bruno M 45 en passant vraiment desolé et encore merci de votre aide par avance
 

Pièces jointes

  • essai valeur 0.xlsm
    31.8 KB · Affichages: 38

bruno66

XLDnaute Occasionnel
positionnement curseur automatique en vba suivant saisie cellule( résolu)

bonjour
j'ai renommé mon titre afin qu'il puisse être utilisé dans le forum par ailleurs
déjà merci a Bruno M45 pour ses codes ... comme précisé j'avais un souci pour l’adapter a mon fichier

mais pour décourager des Bruno il en faut un peu plus n'est ce pas Bruno M45... mdr
sur la 2 eme partie des codes pour le décalage et condition de remplissage des cellules , j'ai monté une usine a gaz qui fonctionne très bien et que je pense que l'on puisse améliorer aussi .
je vous joint le fichier en exemple

*fonction cellule valeur 0 a la saisie renvoie autre cellule auto ( passage auto plage cellule à la saisie )
*fonction validation cellule renvoie a autre cellule
*bouton effacement des données dans tableau suivant plage ou cellules ( voir aussi plage de cellules fusionnées)
*code barre defilement vertical remis en haut en meme temps que l' effacement pour nouvelle saisie

esperant que cela vienne en aide a d'autre
merci bonne journée
 

Pièces jointes

  • placement curseur VBA si cellule = valeur 0 saisie.xlsm
    65.1 KB · Affichages: 41

Statistiques des forums

Discussions
312 222
Messages
2 086 394
Membres
103 200
dernier inscrit
pascalgip