cs_lilly91
Messages postés7Date d'inscriptionjeudi 5 juin 2008StatutMembreDernière intervention20 avril 2009
-
13 avril 2009 à 12:33
cs_lilly91
Messages postés7Date d'inscriptionjeudi 5 juin 2008StatutMembreDernière intervention20 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 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
cs_lilly91
Messages postés7Date d'inscriptionjeudi 5 juin 2008StatutMembreDernière intervention20 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
Vous n’avez pas trouvé la réponse que vous recherchez ?