Code VBA cellule suivante

Bonjour sur fichier excel aller à la cellule suivante si précédente rempli
Code feuil1 : visualiser le code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Me.Range("B3"), Target) Is Nothing Then
    ' affectation aux touches Entrée de l'exécution d'une macro
    Application.OnKey Key:="{RETURN}", procedure:="macro1": Application.OnKey Key:="{ENTER}", procedure:="macro1"
Else
    ' restauration action standard des touches Entrée
    Application.OnKey Key:="{RETURN}": Application.OnKey Key:="{ENTER}"
End If

End Sub

dans macro sur la feuil1
Sub macro1()
Set range1 = Range(« B3 »)
range1.Copy
Range(« C3 »).Select
ActiveCell.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range(« B3 »).ClearContents
End Sub

je veux aller à la cellule suivante si précédente rempli D3, E3 etc
ensuite faire cela sur des lignes en dessous avec commande B4

merci

je ne sais pas ce que vous voulez faire, déplacer le contenu d’une cellule vers droite ?
Au lieu du « Return », j’utilise le bouton droite de la souris.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     With Target
          If .Value = "" Then Exit Sub       'cellule est vide =arrêter
          If Intersect(.Cells(1), Me.Range("3:10")) Is Nothing Then Exit Sub     'seuelement dans les lignes 3 à 10
          Cancel = True
          
          If .Column = Columns.Count Then MsgBox "on est déjà à la dernière cellule": Exit Sub
          If .Offset(, 1).Value <> "" Then
               If vbYes <> MsgBox("cellule à droite n'est pas vide" & vbLf & "Continuer ??", vbYesNo) Then Exit Sub
          End If
          
          
          .Offset(, 1).Value = .Value        'déplacer valeur 1 position vers droite
          .ClearContents                     'vider target
     End With
End Sub

Jean29.xlsm (20,7 Ko)

ce n’est pas tout à fait ce que je veux dans le code de la feuille
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'If Not Douvient Is Nothing Then

    Application.EnableEvents = False
        If Douvient.Address = "$B$3" Then
            Range("C3").Activate
         ElseIf Douvient.Address = "$C$3" Then
            Range("D3").Activate
        ElseIf Douvient.Address = "$D$3" Then
            Range("E3").Activate
        ElseIf Douvient.Address = "$E$3" Then
            Range("F3").Activate
        ElseIf Douvient.Address = "$F$3" Then
            Range("G3").Activate
        ElseIf Douvient.Address = "$G$3" Then
            Range("H3").Activate
        ElseIf Douvient.Address = "$H$3" Then
            Range("I3").Activate
        ElseIf Douvient.Address = "$I$3" Then
            Range("J3").Activate
        ElseIf Douvient.Address = "$J$3" Then
            Range("K3").Activate
        ElseIf Douvient.Address = "$K$3" Then
            Range("L3").Activate
        ElseIf Douvient.Address = "$L$3" Then
            Range("M3").Activate
        ElseIf Douvient.Address = "$M$3" Then
            Range("N3").Activate
         End If
        Set Douvient = ActiveCell
    Application.EnableEvents = True
    
    'End If

End Sub

sur chaque ligne mettre un nombre en B3 valider avec touche entrée puis cellule suivante C3 valider mais pas forcement valider les autres cellules, pouvoir revenir sur ancienne cellule
passer à la ligne suivante
etc
Merci
enchainement_restaux.xlsm (16,3 Ko)
Ceci pour entrer le nombre de produits par cellule et par ligne

transformer votre plage en un tableau structuré et celui vous aidera à bien assigner des valeurs aux cellules.

enchainement_restaux.xlsm (23,1 Ko)

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.