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

dam - 16 juin 2016 à 16:37 - Dernière réponse : Whismeril 11442 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention
- 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
Afficher la suite 

12 réponses

Répondre au sujet
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 16/06/2016 à 18:00
0
Utile
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.
Commenter la réponse de ucfoutu
Whismeril 11442 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - 16 juin 2016 à 19:00
0
Utile
Bonsoir Uc, cependant dans le titre, il parle aussi de Vb.net, cela mérite peut être une confirmation.
Commenter la réponse de Whismeril
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 16 juin 2016 à 19:09
0
Utile
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.
Commenter la réponse de ucfoutu
Ricardams - 16 juin 2016 à 19:10
0
Utile
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
Commenter la réponse de Ricardams
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 16 juin 2016 à 19:12
0
Utile
Et nous y voilà donc :
Relire (et y répondre) mon message plus haut ( 16 juin 2016 à 19:09 )

Commenter la réponse de ucfoutu
ricardams - 16 juin 2016 à 19:51
0
Utile
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
Commenter la réponse de ricardams
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 16/06/2016 à 21:47
0
Utile
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.
Commenter la réponse de ucfoutu
ricardams 1 Messages postés jeudi 16 juin 2016Date d'inscription 16 juin 2016 Dernière intervention - 16 juin 2016 à 21:44
0
Utile
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
Commenter la réponse de ricardams
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 16 juin 2016 à 21:51
0
Utile
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.
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 16 juin 2016 à 21:59
0
Utile
1
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é.
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,
Commenter la réponse de ucfoutu
Whismeril 11442 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - 16 juin 2016 à 23:04
0
Utile
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
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.