Variable [Résolu]

Signaler
Messages postés
7
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
20 avril 2009
-
Messages postés
7
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
20 avril 2009
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
PS : Catégorie de la question modifiée de VB6 à VBA (excel)
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
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
Messages postés
7
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
20 avril 2009

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
Messages postés
7
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
20 avril 2009

Jvai tester cette solution aussi ca peut etre utile!! :)
merci