incrémenter ou passer à la ligne suivante

  • Initiateur de la discussion Initiateur de la discussion nicole
  • 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 !

N

nicole

Guest
Bonsoir amis du forum,

je passe presque plus de temps avec vous que à vraiment travailler. Je trouve énormement de choses intéressantes sur le site.

Alors mon pb, avec mon bouton enregistrer je récupère des données d'un userform ( dans des textbox) et je les renvoie comme il s'agit de nouvelles données à la dernière ligne du tableau. ça marche pour le premier cas , seulement si refais la même opération, les nouvelles données écrasent les anciennes données , que puis-faire?

mon code:

Private Sub Recording()
Dim TheCheckList As String
Dim CTRL As Control
Dim j As Integer
Dim k As Integer
k = j + 1
k = 450
Set WS = Worksheets("Tableau")
j = WS.Range("A65536").End(xlUp).Row

If CheckBox1.Value = True Then

WS.Cells(k, 79) = Me.TbGPD.Value

WS.Cells(k, 98) = Me.TbRisqHCofaceR.Value

End If

End Sub


merci à tous
 
Bonsoir Nicole,

Dans ton code, la ligne de destination des valeurs récupérées est représentée par la variable 'k'.

Or, ta variable 'k' reste à 450 !

Au lieu de :

k = j + 1
k = 450
Set WS = Worksheets("Tableau")
j = WS.Range("A65536").End(xlUp).Row

Essaie plutot :

Set WS = Worksheets("Tableau")
j = WS.Range("A65536").End(xlUp).Row
k = j + 1

(Je n'ai pas compris l'utilité du k = 450 ici)

Cordialement.
Didier_mDF
 
Bonjour Forum, Didier,

j'avais déja essayé ce que tu m'as proposé mais cela a pour effet d'enregistrer à la première ligne (A1) et les données continuent à s'écraser les unes sur les autres.

k=450 c'est parcque j'ai 449 clients et que le client suivant occupera la 450 ème position.


D'autres idées qui pourraient m'aider?

merci

Nicole
 
Bonjour

Nicole pour reprendre ton code

Private Sub Recording()
Dim j As Integer
Set WS = Worksheets("Tableau")
j = WS.Range("A65536").End(xlUp).Row + 1

If CheckBox1.Value = True Then

WS.Cells(j, 79) = Me.TbGPD.Value

WS.Cells(j, 98) = Me.TbRisqHCofaceR.Value

End If

End Sub

Essaies comme ceci

Bon courage

Pascal
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
581
Réponses
0
Affichages
598
Réponses
3
Affichages
774
Retour