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 :

Compiler des fonctions perso en une seule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Technicien Spectacle
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Spectacle

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Par défaut Compiler des fonctions perso en une seule
    Bonjour, j'ai un problème pour compiler 3 fonction perso (à peu près identique)... J'aimerais d'une valeur trouver un résultat. Seulement celui ci est identifiable par un chemin du genre Cellule A => Cellule B => Cellule C => Cellule D
    j'ai réussi à créer une bidouille en créant des lignes qui affiche les résultats intermédiaires. Seulement celle ci ne me convient qu'à moitié... j'aimerais supprimer ces "cellules d'étape"
    Comment faire en VBA? Pour que genre, il garde en "mémoire" les résultats intermédiaires et s'en serve pour la suite des calculs.
    J'ajoute que je suis totalement newbie en programmation
    Merci

  2. #2
    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
    Bonjour,


    utilise les balises de codes [Code] TES FORMULES [/code] pour nous montrer tes formules...

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien Spectacle
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Spectacle

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Par défaut
    Comme ça? :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
     Option Explicit
    Function RechercheTypeBrut(Nom As Range) As String
     Application.Volatile
     Dim WsS As Worksheet
    Dim Cel As Range, C As Range
    Dim Tablo
    Dim i As Integer
    Dim Valeur As String
        Set WsS = Worksheets("Patch DMX")
            If Not IsEmpty(Nom) Then
                Tablo = Split(Nom, "/")
                For i = 0 To UBound(Tablo)
                    Set C = WsS.Columns(1).Find(Tablo(i), , xlValues, xlWhole)
                    If Not C Is Nothing Then
                        Valeur = Valeur & C.Offset(0, 1) & "/"
                    End If
                Next i
                RechercheTypeBrut = Left(Valeur, Len(Valeur) - 1)
                Valeur = ""
            End If
    End Function
     
    Function RechercheAmpBrut(Nom As Range) As String
     Application.Volatile
     Dim WsS As Worksheet
    Dim Cel As Range, C As Range
    Dim Tablo
    Dim i As Integer
    Dim Valeur As String
        Set WsS = Worksheets("Amperage")
            If Not IsEmpty(Nom) Then
                Tablo = Split(Nom, "/")
                For i = 0 To UBound(Tablo)
                    Set C = WsS.Columns(1).Find(Tablo(i), , xlValues, xlWhole)
                    If Not C Is Nothing Then
                        Valeur = Valeur & C.Offset(0, 1) & "/"
                    End If
                Next i
                RechercheAmpBrut = Left(Valeur, Len(Valeur) - 1)
                Valeur = ""
            End If
    End Function
     
    Function SomInterne(RangeInput As Range) As Double
     
     SomInterne = Evaluate(Replace(RangeInput, "/", "+"))
    End Function
    Chacune des 3 fonctions se rapporte à la cellules engendrée par la précédente

  4. #4
    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
    Et comment tu utilise ( lie...) ces fonctions entre-elles ... dans tes cellules :
    Citation Envoyé par miyhun
    Cellule A => Cellule B => Cellule C => Cellule D

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien Spectacle
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Spectacle

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Par défaut
    Dans la A1 j'écris manuellement 1 ou plusieurs valeurs (dans ce cas séparées de "/")
    Dans A2, la fonction va me chercher les Types correspondant à chaque valeur de A1 dans la feuille "Patch DMX"
    Dans A3 elle va me chercher la correspondance de chaque valeurs de A2 dans la feuille "Amperage"
    Dans A4 elle m'additionne les valeurs de A3

    Le problème n°1 est que dans A2, je supprime les doublons pour une meilleure visibilité à l'impression
    Le problème n°2 est que A3, je n'ai pas envie qu'elle apparaisse, elle ne me sert à rien visuellement

  6. #6
    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
    encore une fois c'est incomplet pour nous aider à comprendre tu aurais pu mettre tes formules .... afin que l'on voit si l'on peu modifier tes fonctions pour en faire une seule ..

Discussions similaires

  1. Fonction js lancée une seule fois avec setInterval
    Par stephnane dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/08/2007, 22h03
  2. [Requête] Utilisation d'une fonction perso dans une requête
    Par Julien Dufour dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2007, 09h53
  3. Réponses: 8
    Dernier message: 26/10/2006, 16h46
  4. Réponses: 2
    Dernier message: 19/09/2006, 19h06
  5. Pointeur sur des fonctions membres d'une classe
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 15/02/2006, 11h35

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