Comment se décaler vers le bas

Bonjour,

J'ai créer un UserForm qui me permet d'alimenter une base de donnée en remplissant les zone de texte.

Mon problème est que mon programme ne marche pas car je n'arrive pas à me décaler vers la cellule du bas pour que le remplissage se fasse automatiquement.

A la base j'ai écris ce programme :

Private Sub BtnEnregistrer_Click()

    Sheets("Référencement").Activate
    Range("A1").Select
    Selection.End(xlDown).Select 'Se mettre sur la dernière ligne non vide'
    Selection.Offset(1, 0).Select 'Se décaler vers le bas'
    ActiveCell = TxtMachine.Value

    ActiveCell.Offset(0, 1).Value = TxtMachine
    ActiveCell.Offset(0, 2).Value = TxtRef
    ActiveCell.Offset(0, 3).Value = TxtNumP
    ActiveCell.Offset(0, 4).Value = TxtDesignationP
    ActiveCell.Offset(0, 5).Value = TxtMarque
    ActiveCell.Offset(0, 6).Value = TxtSpé
    ActiveCell.Offset(0, 7).Value = CboEmplacement
    ActiveCell.Offset(0, 8).Value = CboAllée
    ActiveCell.Offset(0, 9).Value = TxtLetC
    ActiveCell.Offset(0, 10).Value = TxtCodeGmao

MsgBox "Une nouvelle pièce vient d'être enregistrée"

End Sub

Quand je lance mon programme, j'ai un débogage sur cette ligne :

Selection.Offset(1, 0).Select

Et j'obtient ça :

image

J'ai essayer plusieurs modification mais j'obtient le même résultat rien ne fonctionne. J'ai besoin de votre aide.

Cordialement

Bonjour C2L

Avec

Selection.Offset(1, 0).Select

Il faut être sur la feuille en question

Essayez ceci

Private Sub BtnEnregistrer_Click()
  Dim Sht As Worksheet
  Dim dLig As Long, nLig As Long

  With Sheets("Référencement")
    dLig = .Range("A1").End(xlDown).Row
    nLig = dLig + 1
    .Cells(nLig, 1).Value = TxtMachine.Value
    .Cells(nLig, 1).Value = TxtMachine
    .Cells(nLig, 2).Value = TxtRef
    .Cells(nLig, 3).Value = TxtNumP
    .Cells(nLig, 4).Value = TxtDesignationP
    .Cells(nLig, 5).Value = TxtMarque
    .Cells(nLig, 6).Value = TxtSpé
    .Cells(nLig, 7).Value = CboEmplacement
    .Cells(nLig, 8).Value = CboAllée
    .Cells(nLig, 9).Value = TxtLetC
    .Cells(nLig, 10).Value = TxtCodeGmao
  End With
  MsgBox "Une nouvelle pièce vient d'être enregistrée"
End Sub

@+

J'ai essayer ton programme mais ça ne marche toujours pas.

j'ai obtenu ça :

image

Cdlt

Re,

Soit nLig est à 0 et ce n'est pas nomal

Soit TxTMachine n'existe pas

Ceci dit, sans fichier il est difficile de répondre

@+

TxtMachine existe.

image

cdlt

Voici le fichier, j'espère que tu pourras l'ouvrir.

cdlt

3inventaire.xlsm (22.43 Ko)

Re,

C'est donc "nLig" qui déconne

Essayez

dLig = .Range("A" & Rows.count).End(xlUp).Row
nLig = dLig + 1

Mettre un point d'arrêt (F9) sur nLig

@+

Désolé, mais ça ne marche toujours pas.

Cdlt

Re,

Oui mais à part ça quel est le message d'erreur !?

@+

Rechercher des sujets similaires à "comment decaler bas"