[VB] Probleme de test sur les cellules excel

Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004 - 24 févr. 2004 à 09:19
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004 - 24 févr. 2004 à 11:57
Salut,

Dans mon programme je souhaiterais faire un graphique, mais le prob c que je voudrai séléctionner les bonnes infos et donc il faut que je récupère le nombre de lignes qui sont rempli dans mon fichier excel. J'avai essayé ce bout de programme :

NbLignes = Cells.SpecialCells(xlCellTypeLastCell).Row
Rows("A1:" & CLng(NbLignes) & ",F1:" & CLng(NbLignes) & "").Select

Mais le prob c'est qu'avec cette formule, bah en fait y me compte les lignes vides en plus des lignes de données ce qui fait que je me retrouve par ex à 96 lignes au lieu de 22) et donc c pas très bien, donc si quelqu'un a une idée pour qu'il ne prenne qu'en compte que les lignes où il y a des données ou qu'il supprime toutes les lignes vides ce serait sympa...

PS : Il est bon de savoir qu'il n'y a pas de lignes vides dans mes lignes données, mais uniquement après la derniere ligne de données.

8 réponses

datatunning Messages postés 53 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 22 juin 2007 1
24 févr. 2004 à 09:58
Bonjour,

Tu peux trier tes lignes afin que les "lignes vides" soient deplacées vers le bas, ta selection n'en sera que plus facile.

Verifie egalement que ton range soit correctement definis, car xlCelltypeLastCell ne fera pas la difference entre des lignes avec/sans data. il prend la derniere cell du range.

En resume :
- Trie
- Verification du range
- (re)selection du range

Datatunning (Bruno)
0
brice0306 Messages postés 68 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 16 février 2006
24 févr. 2004 à 10:07
Autres solution, je sais po si C plus simple mais bon je la donne qd mm:
Tu cherche la dernière ligne non vide:
last_L= Activesheet.usedrange.rows.count
last_C = Activesheet.usedrange.columns.count

et tu fais une double boucle pour vérifier si il y a bien qq chose dans ta ligne:

for i=1 to last_L
for j=1 to last_C
if Acctivesheet.cells(i,j).value <> empty
Vide = false
end if

if not vide
bah là t'en fais ce ke tu veux sauver la ligne dans un
tableau, etc....
end if
next j
next i

Je sais po ce ke ça vaut mais bon C une solution possible....

_______________
www.arsenal.fr.st
0
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
24 févr. 2004 à 10:15
Justement, toutes les lignes vides sont en bas !!!
Pour le range je ne sais pas trop quoi mettre, vous avez une idée ?
0
datatunning Messages postés 53 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 22 juin 2007 1
24 févr. 2004 à 10:17
Utilise l'idee de brice0306 pour definir ton range.

Datatunning (Bruno)
0

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

Posez votre question
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
24 févr. 2004 à 11:26
hum ce que je n'arrive pas à faire en fait, c'est recuperé la valeur de la ligne que je mettrerai dans une variable, par exemple y se calle sur la ligne 22, bah je v lui dire Nblignes = 22.

En gros le prob réside dans le fait que je n arrive pas à récupéré cette valeur, car quand j ouvre mon fichier il est automatiquement sur la derniere ligne de donnée, et donc si je pouvais récupéré ça dans ma variable ce serait cool.
0
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
24 févr. 2004 à 11:26
hum ce que je n'arrive pas à faire en fait, c'est recuperé la valeur de la ligne que je mettrerai dans une variable, par exemple y se calle sur la ligne 22, bah je v lui dire Nblignes = 22.

En gros le prob réside dans le fait que je n arrive pas à récupéré cette valeur, car quand j ouvre mon fichier il est automatiquement sur la derniere ligne de donnée, et donc si je pouvais récupéré ça dans ma variable ce serait cool.
0
datatunning Messages postés 53 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 22 juin 2007 1
24 févr. 2004 à 11:36
En fait, tu veux recupere les coordonnees d'une cellule.
Utilise la property ActiveCell.Row et ActiveCell.Column qui te donne la position de la cellule.

Datatunning (Bruno)
0
Aurnukem Messages postés 20 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 12 mars 2004
24 févr. 2004 à 11:57
c bizarre mais quand j ouvre mon fichier, la cellule active est est sur ma derniere ligne de donnée (ligne 29), mais quand j'utilise la property ActiveCell.Row il me met 1 alors que je suis sur la ligne 29 ? pourquoi y me fait ca ?
0
Rejoignez-nous