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

Excel Discussion :

insérer une plage de cellule dans une fonction


Sujet :

Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2014
    Messages : 87
    Points : 44
    Points
    44
    Par défaut insérer une plage de cellule dans une fonction
    Bonjour à tous,

    J'ai crée deux fonctions sous vba et je souhaiterais ne pas les exécuter dans Excel en saisissant les arguments.
    J'ai réussi à obtenir ce que je souhaitais avec la première fonction mais pas avec la 2ème.

    Voici le code de la première:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Function hrels()
    Dim semelle As Byte
    semelle = Range("_semelle")
    Call b
     If semelle = 1 Then
        hrels = 1.5 * b
     End If
    End Function
    Voici le code de la 2ème fonction faisant appel à la première ainsi qu'à une plage de cellule d'un tableau sous "Excel"

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Function ple_els(hrels, CouchesGéotech)
     
    Dim tblGéo
    Dim i As Integer
    Dim ep_i, ple_prod, ep_cumul, pl_i, Ple As Double
     
    ple_prod = 1
    tblGéo = CouchesGéotech
     
    For i = 1 To 100
     
        ep_i = tblGéo(i, 2)
            If IsEmpty(ep_i) Then Exit For
        ep_cumul = ep_cumul + ep_i
     
     
     
        If hrels >= ep_cumul Then
            pl_i = tblGéo(i, 7)
            ple_prod = ple_prod * pl_i ^ (ep_i)
        Else
     
            ple_prod = ple_prod * pl_i ^ (hrels - (ep_cumul - ep_i))
            Exit For
        End If
    Next
     
    If IsEmpty(ep_i) Then
     
        Ple = " Nombre de couches de sol insuffisante (hr>cumul des épaisseurs de couches), veuillez ajouter des couches de sol"
     
    Else
     
        Ple = ple_prod ^ (1 / hrels)
     
    End If
     
    End Function
    Je ne souhaite surtout pas que l'utilisateur saisisse lui même les cellules comme indiqué dans le 2ème argument car les lignes du tableau sont variables.
    Du coup je pensais créer une boucle for qui parcourt chaque ligne du tableau et qui me récupére la valeur de la (ième ligne;2è colonne). Mais ne peut on pas déclarer le tableau sous excel comme une variable de type "array" et éviter toutes ces boucles?

    merci d'avance

  2. #2
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2014
    Messages : 87
    Points : 44
    Points
    44
    Par défaut
    Bonjour à tous,

    svp personne?

  3. #3
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par eliamat Voir le message
    Bonjour à tous,

    J'ai crée deux fonctions sous vba et je souhaiterais ne pas les exécuter dans Excel en saisissant les arguments.
    ...
    Là désolé je n'ai rien compris



    Citation Envoyé par eliamat Voir le message
    ...
    Du coup je pensais créer une boucle for qui parcourt chaque ligne du tableau et qui me récupére la valeur de la (ième ligne;2è colonne). Mais ne peut on pas déclarer le tableau sous excel comme une variable de type "array" et éviter toutes ces boucles?
    Tu peux aussi utilisé l'objet Cells qui récupère la valeur d'une cellule surtout si tu as son adresse en Numérique

    Cells (N°ligne,N°colonne)

    réexplique le début de ton post c'est pas clair

    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par eliamat Voir le message
    Bonjour à tous,
    svp personne?
    Si une question n'a pas de réponse, c'est soit que personne ne connait la réponse, soit que la question est mal posée.
    Dans les deux cas, un message comme ton #2 ne sert à rien en tant que tel.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2014
    Messages : 87
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Désolé pour l'explication flou.
    Je souhaite en fait lancer les deux fonctions par le biais d'un bouton sans que l'utilisateur ait à saisir les deux fonctions avec les arguments dans les cellules.
    Les valeurs des deux fonctions seront ensuites stockées dans un tableau et seront visibles donc par l'utilisateur.
    Merci Igloobel pour cette piste, je vais chercher dans cette voie.

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par eliamat Voir le message
    Je souhaite en fait lancer les deux fonctions par le biais d'un bouton sans que l'utilisateur ait à saisir les deux fonctions avec les arguments dans les cellules.
    Un bouton ne lancera pas une fonction mais peut lancer une routine Sub.

    Les valeurs des deux fonctions seront ensuites stockées dans un tableau et seront visibles donc par l'utilisateur.
    Si tu veux modifier le contenu d'une cellule avec un Sub, il faut que tu utilises un Range ou un Cells :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("C1").Value = ...
    Cells(1, 3).Value = ...
    https://msdn.microsoft.com/fr-fr/lib.../ff195193.aspx
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [XL-2007] InputBox pour sélectionner cellule ou une plage de cellules dans une feuille.
    Par Nonno 94 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/02/2014, 19h01
  2. modification de cellules dans une plage de cellules
    Par matou83 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/06/2010, 11h32
  3. Autoriser sélection d'une plage de cellule dans une feuille Excel
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/08/2008, 09h49
  4. Trouver une plage de cellule dans une autre plage
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 16/04/2008, 14h27

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