Code pour trouver derniere cellule vide dans excel en VB.net

dam - 16 juin 2016 à 16:37
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 - 16 juin 2016 à 23:04
Bonjour, je cherche comment identifier avant d'écrire dedans le dernière cellule vide dans Excel .
le but étant de transférer les informations d'une listbox dans un fichier Excel.

merci pour votre aide

11 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 16/06/2016 à 18:00
Bonjour,
Qu'entends-tu très exactement par "dernière cellule vide" ?
celle d'une colonne déterminée est UNE chose, celle de toutes les cellules d'une feuille en est une AUTRE.
D'où la nécessité de prendre son temps et d'être précis.

Je déplace par ailleurs cette discussion là (sous-forum VBA) où tu aurais dû l'ouvrir. VBA n'est pas VB.Net. Veux-tu bien prendre toi-même dorénavant ce soin ?

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
16 juin 2016 à 19:00
Bonsoir Uc, cependant dans le titre, il parle aussi de Vb.net, cela mérite peut être une confirmation.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 juin 2016 à 19:09
Bonsoir, Whismeril,
qu'il "pilote" Excel depuis VB.Net ou qu'il soit déjà dans Excel, la problématique est exactement la même et "tourne" autour de ses connaissances en VBA/Excel.
S'il ne sait pas le faire directement (depuis Excel), il n'a aucune chance de le faire indirectement (en automation).
Mais on va se mettre tous d'accord ===>>
A dam : quelles instructions écrirais-tu depuis directement VBA/Excel pour y parvenir ? ===>>
- Si tu le sais : montre-les et on te dira comment les écrire en automation depuis VB.Net
- si tu ne le sais pas ===>> apprendre d'abord, avant de parler automation.

Ce qu'il y a de plus que certain : en aucun cas, en automation, le langage utilisé ne viendra combler les lacunes dans le langage à exécuter.
0
Bonjour à tous c,est pour du vb.net mais c est pour écrire dans un fichier excel.
Pour être plus précis il faut que je récupère les infos sélectionné dans une list box dans un code en vb puis faut que je les exporté dans un fichier excel pour créer une base qui viens s alimenter fur à mesure d ou l utilité de rechercher la dernière ligne qui est libre pour ne pas écraser la précédente,merci pour vos retour
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 juin 2016 à 19:12
Et nous y voilà donc :
Relire (et y répondre) mon message plus haut ( 16 juin 2016 à 19:09 )

0
Sub Premiere_Vide()
Sheets("Feuil1").Range("B1").End(xlDown).Offset(1, 0).Select
End Sub


voila ce que j'utilise en vba pour ligne vide sur une colonne

merci par avance
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 16/06/2016 à 21:47
Oui ?
- voilà enfin la précision que tu n'avais pas donnée : sur la seule colonne B
Il se trouve que ce n'est pas là le bon code pour déterminer à coup sûr la
dernière cellule vide

de la colonne B.
Ce code détermine non la dernière vide, mais la première vide de la colonne B
Quoi qu'il en soit : comment et où as-tu instancié en (VB.Net, donc) l'appli Excel et le classeur concerné ?

EDIT : si tu "pilotes" Excel, tu as créé un objet application Excel (appelons-le toto) et un objet classeur Excel (appelons-le titi)
soit derlig la dernière ligne remplie de la colonne B, elle de détermine ainsi :
derlig = titi.Worksheets("Feuil1").Range("B" & toto.Rows.Count).End(xlUp).Row

et la ligne suivante est donc derlig+1
Note : pas de "select" en pilotage (pas recommandé non plus, d'ailleurs, depuis Excel directement). On travaille sur les objets Excel.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
ricardams Messages postés 1 Date d'inscription jeudi 16 juin 2016 Statut Membre Dernière intervention 16 juin 2016
16 juin 2016 à 21:44
ou comme ca pour la dernière vide


Dim ligne As long

ligne = Sheets("liste").Range("A65536").End(xlUp).Row+1
sheets("Liste").Range("B1" & ligne).Paste


sinon pour ta réponse:


Dim xlApp As Excel.Application
Dim xlSh As Excel.Worksheet


merci
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 juin 2016 à 21:51
Bien ...
tu as donc ma réponse (mon édit plus haut).
Quant au reste (et là, encore, c'est de la connaissance VBA/Excel et non du VB.Net)
On tne travaille ni à coup de select, ni à coup de copy ==>> presse-papier , puis Paste !
Ouvre ton aide VBA à la rubrique Range.Copy et applique.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 juin 2016 à 21:59
Ah oui ...
Et ce n'est pas tout (et tu vas voir à quel point, lorsque l'on veut "piloter", il faut avoir une très bonne connaissance de ce que l'on veut "piloter").
VB.Net ignorera la valeur de la constante VBA/Excel XlUp. Il faut donc remplacer xlUp par -4162 dans le code de pilotage montré.
0
Merci, pour ta réponse et c est vrais j ai beaucoup à apprendre mais j ai tellement envie d avancer que j ai tendance à brûler les étapes .ce petit petit projet me tient à cœur pour le boulot,
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
16 juin 2016 à 23:04
C'est donc bien en .Net

Tu trouveras ici
http://codes-sources.commentcamarche.net/source/50624-piloter-excel-via-microsoft-office-interop-excel

Un code C# qui fait faire plein de choses à Excel, et entre autre trouver la dernière cellule.

Pour répondre à Uc, en effet .Net ne connait pas XlUp, mais l'assembly permettant d'utiliser l'API dispose de ce qu'il faut pour accéder facilement à la dernière cellule.

Pour traduire ce code en VB.Net, il existe de nombreux sites gratuits
https://www.google.fr/?gfe_rd=cr&ei=VhRjV-i4Leqv8wek9I-YAg#q=C%23+to+vb.net
0
Rejoignez-nous