saisie de donnée automatique

  • Initiateur de la discussion Initiateur de la discussion claude40
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : saisie de donnée automatique

Re...
(...) y'aurait il une solution pour que la derniere ligne saisie soit toujour la premiere ligne du tableau? (...)
Remplacez la procédure toto par celle-ci :
Code:
Sub toto()
Dim i As Long, j As Long, oDat
   With Me.Range(Me.UsedRange.Cells(10, 1).CurrentRegion, Me.Cells.SpecialCells(xlCellTypeLastCell))
      oDat = .Resize(.Rows.Count + 1, .Columns.Count).Offset(-1, 0).Value
      For i = 1 To UBound(oDat, 1)
         For j = 1 To UBound(oDat, 2)
            If Not IsEmpty(oDat(i, j)) Then Exit For
         Next j
         If j > UBound(oDat, 2) Then Exit For
      Next i
      For j = 1 To UBound(oDat, 2)
         oDat(1, j) = Me.Cells(4, j).Value
      Next j
   .Value = oDat
   End With
End Sub
ROGER2327
 
Re : saisie de donnée automatique

merci ROGER 2327
pour ton aide.une derniere petite chose,quand les chiffres des cellules de saisies s'incrive dans le tableau,sa ne pourrai pas effacer les données dans les cellules de saisie,afin de les liberer pour la prochaine saisi.

merci pour ton aide
 
Re : saisie de donnée automatique

Re...
merci mais je suis assez novice encore,et votre code et assez compliquer.
Dans ce cas, je donne quelques commentaires pour vous aider à le comprendre. J'en profite pour le simplifier. Voici le code brut :
Code:
Sub toto()
Dim i As Long, j As Long, oDat
   With Me.Range(Me.UsedRange.Cells(10, 1).CurrentRegion, Me.Cells.SpecialCells(xlCellTypeLastCell))
      oDat = .Resize(.Rows.Count + 1, .Columns.Count).Offset(-1, 0).Value
      For j = 1 To UBound(oDat, 2)
         oDat(1, j) = Me.Cells(4, j).Value: Me.Cells(4, j).Value = Empty
      Next j
   .Value = oDat
   End With
End Sub
Et le même commenté :
Code:
Sub toto()
Dim i As Long, j As Long, oDat
   With Me.Range(Me.UsedRange.Cells(10, 1).CurrentRegion, Me.Cells.SpecialCells(xlCellTypeLastCell))
   [COLOR="SeaGreen"][B]'Désigne la plage de résultats : Dans ce classeur, c'est
   'A10:K47. On aurait pu écrire
   'With Me.Range("A11:K47")
   'Mais en l'écrivant comme je l'ai fait, vous pouvez ajouter des colonnes et des lignes à cette plage.
   'Attention toutefois : il faut une colonne vide à droite du tableau.[/B][/COLOR]
      oDat = .Resize(.Rows.Count + 1, .Columns.Count).Offset(-1, 0).Value
      [COLOR="SeaGreen"][B]'La variable 'oDat' prend les valeurs de la plage ci-dessus,plus la ligne précédente (ligne 10).[/B][/COLOR]
      For j = 1 To UBound(oDat, 2)
         oDat(1, j) = Me.Cells(4, j).Value: Me.Cells(4, j).Value = Empty
      Next j
      [COLOR="SeaGreen"][B]'Cette boucle recopie les valeurs de la ligne de saisie dans le tableau 'oDat' et
      'efface les valeurs de la ligne de saisie.[/B][/COLOR]
   .Value = oDat [COLOR="SeaGreen"][B]'On recopie le tableau dans la plage de résultats.[/B][/COLOR]
   End With
End Sub
Voilà...​
Bon courage !
ROGER2327
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
233
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
250
Réponses
6
Affichages
572
Retour