Parcourir une feuille de calcul

  • Initiateur de la discussion Initiateur de la discussion David Jonc.
  • 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 !

D

David Jonc.

Guest
Bonjour au forum,

j'ai un probleme, qui parait banal, mais qui prend rapidement la tete.

oila, j'ai un userform qui permet d'ajouter des informations en fin de feuille, donc il faut que je descende ma colone jusqu'a ce que la ligne soit vide.

Pour l'instant, rien de plus simple, mais c'est là ou ça se complique.

Voici mon code:

Private Sub CommandButton1_Click()

Dim i As Integer

'active la feuille de calcul
Worksheets("feuil1").Activate

'Position en J1 (fournisseurs)
Range("J1").Select

' recherche la derniere ligne
i = 0
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Range("J1").Select
' i retient le numéro de ligne
i = i + 1
Loop

MsgBox "numéro de ligne: " & i & ActiveCell.Value

End Sub

Sauf que lorsque j'execute ça, je me retrouve en "AB3"!!

Une chose encore que je dois préciser, les colonnes "A", et les lignes 1 et 2 sont figés, j'ai selectionné la case C2, et j'ai figé les volets.

Voila, je n'arrive pas a retrouvé la bonne case.

Est ce que quelqu'un a une idée du pourquoi du comment?

Merci beaucoup

David
 
Salut David. salut le forum,

Le problème dans ton code est : ActiveCell.Offset(1, 0) .Range("J1") .Select
Tu le remplacerait par : ActiveCell.Offset(1, 0).Select
et tu aurais le bon message.

Mais, grâce à Thierry (un des grands de ce forum) qui m'a jeté en voyant cette méthode, tu n'utiliseras plus de boucle pour rechercher la première ligne vide d'une colonne. Mais tout simplement (d'après ton exemple) :
Range("J1").End(xlDown).Offset(1, 0).Select
si cette colonne ne comporte pas trou (cellule vide entre les cellules pleines) ou : Range("J65536").End(xlUp).Offset(1, 0).Select
Si la colonne comporte des trous et que tu ne veux pas en tenir compte pour aller juste en dessous de la dernière cellule édité.
Tu auras le même résultat que ta boucle en dix fois plus rapide (à exécuter et à écrire...)

À plus,

Robert
 
Bonsoir David Jonc. et le Forum


David si j'ai bien compris tu veux récuperer la première cellule vide de ta colonne pour y mettre les données de ton UserForm ? Si j'ai bien saisie tu peux essayer avec ce code.

Private Sub CommandButton1_Click()
Dim i%
i = Sheets(1).Range("j65536").End(xlUp).Row + 1
Sheets(1).Range("j" & i) = 'Ici le controle de ton UserForm dans lequel tu met tes données
MsgBox "numéro de ligne: " & i & ActiveCell.Value
End Sub

@+ Salim
 
Salut Robert, salim, le forum,

merci beucoup pour vos réponses, je suis novice en vba. J'ai passé mon aprés midi entiere a me demander pourquoi ça ne fonctionnait pas!!

Merci beaucoup.

@+ David
 
- 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

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
664
Réponses
7
Affichages
800
Réponses
3
Affichages
590
Retour