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 :

Passage d'une case d'un tableau en paramètre


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Passage d'une case d'un tableau en paramètre
    Bonjour,

    J'aurais besoin de votre aide car je commence à désesperer pour debugger une partie de mon code:

    Je n'arrive pas à passer mon argument en paramètre. VBA me renvoye l'erreur "Objet Requis" or toutes mes variables sont déclarées.

    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
    17
    18
    19
    20
    21
    22
    23
     
    Dim Split As Double
    'TabDataCl est un tableau de Variant/Double et TabRegle Variant/double aussi 
    For i = 1 To UBound(TabDataCl, 2) Step 2
            Split = ChoixSplit(TabRegle(1, i).Value)
            FX = ChoixFX(TabName(1, i + 1).Value)
            For j = 1 To UBound(TabDataCl, 1)
                TabRatioA_S(j, i) = CalculRatioADRdivS(TabDataCl(j, i).Value, TabDataCl(j, i + 1).Value, Split, TabFX(j, FX).Value)
                TabRatioS_A(j, i) = CalculRatioSdivADR(TabDataCl(j, i).Value, TabDataCl(j, i + 1).Value, Split, TabFX(j, FX).Value)
            Next j
        Next i
     
    Public Function ChoixSplit(Regle As Double) As Double
        Dim i As Long
        'Split
        Dim TabSplit As Variant
        i = 1
        TabSplit = Range("TabSplit")
        While Regle <> TabSplit(i, 1)
            i = i + 1
        Wend
            ChoixSplit = TabSplit(i, 2)
    End Function
    l'erreur se trouve au niveau de Split = ...... et je pense qu'elle se trouvera de nouveaux à chaque passage de paramètre.
    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour,

    code incomplet donc on ne peut rien vérifier ‼

    Split étant déjà un mot réservé du langage VBA, il serait opportun de modifier le nom de la variable !

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour (et un salut amical à Marc_L)

    Drôle de réinvention de roue que cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Function ChoixSplit(Regle As Double) As Double
        Dim i As Long
        'Split
        Dim TabSplit As Variant
        i = 1
        TabSplit = Range("TabSplit")
        While Regle <> TabSplit(i, 1)
            i = i + 1
        Wend
            ChoixSplit = TabSplit(i, 2)
    End Function
    S'intéresser d'urgence à la méthode Range.Find ne sera pas peine perdue.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/08/2011, 17h31
  2. Accès à une case d'un tableau grâce à headers
    Par Invité dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 04/10/2006, 15h45
  3. Réponses: 9
    Dernier message: 15/05/2006, 16h23
  4. Lien dans une case d'un tableau
    Par will89 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 27/04/2006, 10h50
  5. [Debutant] URL utilisable depuis une case d'un tableau de BD
    Par Marc_3 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/04/2005, 19h06

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