Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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+
 

ERIC S

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

Bonjour Yannn et Bruno

Perso je travaillerais plutôt la macro avec Change au lieu de selection_change
 

Pièces jointes

  • monstock.xls
    20.5 KB · Affichages: 42

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)
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…