Problème macro changer de cellule automatiquement

yannn

XLDnaute Nouveau
Bonjour,
J'ai un problème au niveau de ma macro et je ne sais pas si cela est normale.

Je m'explique : (j'ai mit le code de ma macro à la fin)
Je fais actuellement une gestion de stock avec excel pour cela il me faut rentrer des données à l'aide d'une douchette. Il me faut rentré le nom de l'article puis la quantité, pour cela ma macro me permet de passer automatiquement d'une cellule à l'autre si elle est remplit.

Exemple:
Si A1 est remplis passer a B1, si A1 est B1 sont remplis je passe en A2....

Ma macro marche mais le problème c'est qu'elle fait une calcul a chaque entrée qui prend quelques secondes.

Pour finir ma question est est ce que se délai d'attente (environ 5 secs) est normal, ou est il possible de faire une autre macro moins gourmande en temps de calcul?

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Range("A500").End(xlUp).Select

If ActiveCell <> "" And ActiveCell.Offset(0, 1) = "" Then
ActiveCell.Offset(0, 1).Select


ElseIf ActiveCell <> "" And ActiveCell.Offset(0, 1) <> "" Then
ActiveCell.Offset(1, 0).Select

End If
End Sub
 
C

Compte Supprimé 979

Guest
Re : Problème macro changer de cellule automatiquement

Bonsoir Ya3n et bienvenue sur ce forum ;)

Voici le code qu'il te faut, je pense
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  ' Comme on va changer la sélection et que l'on se trouve dans l'évènement SelectionChange
  ' Il faut désactiver les évènement le temps du code
  Application.EnableEvents = False
  ' Sélectionner la dernière cellule remplie de la colonen A
  Range("A" & Rows.Count).End(xlUp).Select
  ' Vérifier si la cellule sélectionnée de la colonne n'est pas vide
  If Range("A" & Target.Row) <> "" Then
    ' Si c'est le cas, vérifier la cellule de la colonne B
    If Range("B" & Target.Row) = "" Then
      ' Si elle est vide on la sélectionne
      Range("B" & Target.Row).Select
    Else
      ' Sinon on sélectionne la cellule suivante de la colonne A
      Range("A" & Target.Row + 1).Select
    End If
  End If
  ' On active de nouveau les évènements
  Application.EnableEvents = True
End Sub

A+
 

yannn

XLDnaute Nouveau
Re : Problème macro changer de cellule automatiquement

Meri ERIC S,
Juste pour savoir et que je comprenne un peu: tu pourrais me détailler un peu comment la macro marche.
Y a des choses ou j'ai du mal et que je connais pas, par exemple target.
cordialement


Private Sub Worksheet_Change(ByVal Target As Range)
derligne = Range("A" & Rows.Count).End(xlUp).Row
If Not Intersect(Target, Range("A" & derligne & ":B" & derligne)) Is Nothing Then
Select Case Target.Column
Case 1
Target.Offset(0, 1).Select
Case 2
Target.Offset(1, -1).Select
End Select
End If
End Sub
 

ERIC S

XLDnaute Barbatruc
Re : Problème macro changer de cellule automatiquement

Re

target, c'est la cellule pointée, paramètre transmis par l'appel macro :

Worksheet_Change(ByVal Target As Range)

ensuite je regarde si on est en A ou B et si oui, si j esuis en A je passe en B (offset(0,1)
si je suis en B je passe en A ligne du dessous (offset(1,-1)
 

Discussions similaires

Réponses
21
Affichages
884