Variable

Résolu
cs_lilly91 Messages postés 7 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 20 avril 2009 - 13 avril 2009 à 12:33
cs_lilly91 Messages postés 7 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 20 avril 2009 - 13 avril 2009 à 14:00
Bonjour,

J'ai un souci, je ne sais pas comment récupérer une variable.
Je m'explique, ici j'ai une fonction qui prend en entrée le nom d'une feuille.
Et j'aimerais pouvoir récupérer le nom de cette feuille pour travaillé dessus.
Le souci c'est que lorsque je fais Worksheet(var) cela ne fonctionne pas.
Je pense que je ne dois pas déclarer ma variable comme il le faut.



Code:
ici je cherche a compter le nombre de ligne de mon tableau celon ma feuille d'entré.

Function nbreLignes(ByVal feuille As String)

Dim ligne As Integer
Dim F As String

F = feuille
ligne = 1


'boucle sur les lignes de la colonne 1 a partir de la ligne 2, jusqu'a une ligne vide'
Do While Not IsEmpty(Worksheets(F).Cells(ligne, 1).Value)
ligne = ligne + 1
Loop

nbreLignes = ligne - 1

End Function


Merci!!

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 avril 2009 à 13:38
Salut
Chez moi, ce ci marche très bien (avec une autre feuille appelée Toto):
   Sub xxx(ByVal Feuille As String)
       MsgBox Worksheets(Feuille).Cells(1, 1).Value
   End Sub



   Sub yyy()
       Call xxx("toto")
   End Sub


J'ai aussi essayé ta boucle, c'est Ok

Alors quand tu dis "ça ne fonctionne pas", que se passe t-il ?
Tu as une erreur ?
Laquelle ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés





<hr />

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 avril 2009 à 13:39
PS : Catégorie de la question modifiée de VB6 à VBA (excel)
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
13 avril 2009 à 13:53
bonjour
 toute cette usine à gaz pour savoir le nombre de ligne dans une feuille
alors qu'il est si simple de faire
nbreLignes = Range("A65536").End(xlUp).Row
à mettre à la place de ton appel de fonction ( tu y gagneras énormément en terme de vitesse d'éxécution )
bien sûr tu peux aussi faire
nbreLignes =WorkSheet("NomDeTaFeuille").Range("A65536").End(xlUp).Row

pour excel 2007 le nombre de lignes disponibles  étant plus grand remplacer éventuellement 65535 par le nombre de ligne max de excel2007 sauf si ta macro doit pouvoir aussi tourner sur des versions plus anciennes

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
cs_lilly91 Messages postés 7 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 20 avril 2009
13 avril 2009 à 13:59
Merci,
alors j'ai retester pour comprendre pourquoi chez moi ça ne fonctionnais pas.
Apparement j'ai dut faire trop de copier coller de fonction et il a pas aimé..
J'ai renommer ma fonction et au miracle ça marche......... :)
Merci
0

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

Posez votre question
cs_lilly91 Messages postés 7 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 20 avril 2009
13 avril 2009 à 14:00
Jvai tester cette solution aussi ca peut etre utile!! :)
merci
0
Rejoignez-nous