IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA excel function ou sub ?


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 2
    Par d�faut VBA excel function ou sub ?
    Bonjour ,

    Je souhaite r�aliser une sub ou function du type :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    workline(x) = Trim(Worksheets("feuil1").Cells(matchligne, x)
    (matchline �tant une variable r�cup�r�e via une autre sub )

    ensuite appeler workline dans une autre proc�dure
    en faisant par valeur1 = workline(7).value

    et valeur 2 = workline(10).value
    etc ... ( il n y pas de suite logique donc pas de boucle possible)

    le pb est que je n'arrive pas � faire l'association , je me m�lange (debutant)
    avec les sub , function et objet etc ..

    Merci de votre aide

  2. #2
    Expert confirm� Avatar de illight
    Homme Profil pro
    Analyste d�cisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Analyste d�cisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par d�faut
    J'ai absolument rien compris

    �a d�pend de ce que doit retourner tes fonctions (ou proc�dures) pour savoir si comme macro tu dois utiliser un sub ou une function
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la r�ponse vous a �t� utile !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 2
    Par d�faut
    En fait je dois en utilisant
    une formule recurrente all�g� mon code par une fonction :
    je m'explique :
    j'ai ds une sub x fois la formule

    truc1 = Trim(Worksheets("feuil1").Cells(5, 10).Value)
    truc2 = Trim(Worksheets("feuil1").Cells(5, 12).Value)
    truc3 =Trim(Worksheets("feuil1").Cells(5, 17).Value)
    |
    |
    |
    |
    etc .....
    les valeurs 10,12,17,.... (colonnes ne pouvant etre determin�s via une boucle logique)

    Je souhaite donc cr�er une formule type :
    formule(x)= trim(Worksheets("feuil1").Cells(5, x).Value)
    mais je ne sais pas comment faire en pratique ..
    En esp�rant etre + clair

    Merci encore

  4. #4
    Membre �m�rite
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Par d�faut
    Dans ce cas, tu dois utiliser un tableau. Je ne sais pas ce que contiennent les cellules que tu veux injecter dans le tableau. Cela influe sur la nature du tableau.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    'Déclaration d'un tableau de 11 élements
    Public MesValeurs(10) As String
     
    Public Sub InstancierTableau() 
        MesValeurs(0) = Trim(Worksheets("feuil1").Cells(5, 10).Value)
        MesValeurs(1) = Trim(Worksheets("feuil1").Cells(5, 12).Value)
        MesValeurs(2) = Trim(Worksheets("feuil1").Cells(5, 17).Value)
    End Sub
    Maintenant, tu peux utiliser les �l�ments du tableau en faisant r�f�rence aux tableau MesValeurs.

    Exemple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    msgbox "Deuxième élément : " & MesValeurs(1)

  5. #5
    Expert �minent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par d�faut
    bon si j'ai tout bien compris, utilise une fonction... et pour l'appel supprime le .value.. :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    '
    ' La fonction
    '
    Function workline(x) As String
      workline = Trim(Worksheets("feuil1").Cells(5, x))
    End Function
    '
    'l'appel dans les autre porcedure
    '
    Sub test()
      Valeur1 = workline(7)
      Valeur2 = workline(10)
      Debug.Print Valeur1
      Debug.Print Valeur2
     End Sub
    PS : Pense aussi que le 1� param�tre de Cells est la ligne le second, la colonne..

Discussions similaires

  1. R�ponses: 2
    Dernier message: 27/02/2013, 22h25
  2. [VBA-E]function sub declaration
    Par trach.sam dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 11/08/2006, 21h14
  3. [VBa-E] Function ou Sub comment choisir?
    Par gootsu dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 14/06/2006, 16h20
  4. [VBA EXCEL] R�duire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 06/11/2003, 17h02
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invit� dans le forum Macros et VBA Excel
    R�ponses: 4
    Dernier message: 24/10/2002, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo