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 :

Aide pour un code VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 9
    Par défaut Aide pour un code VBA
    Bonjour,

    Je suis débutant en VBA et j'ai écris ce code qui ne marche pas sans que je ne comprenne d'où peut venir l'erreur... Auriez-vous des idées ?
    Merci !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Function ord_orig(List1, List2, n As Integer)
     
    List1.Resize(, n)
    List2.Resize(, n)
     
    ord_orig = Application.WorksheetFunction.Intercept(List1, List2)
     
    End Function

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut Il nous faut plus de précisions ...
    Bonjour,
    qui ne marche pas
    C'est un peu vague : message d'erreur ? Si oui, lequel et où ? La macro tourne mais ne fait pas ce que tu veux ? Que veux-tu ? Que fait-elle ?
    Je te conseille la lecture de ceci : https://msdn.microsoft.com/fr-fr/lib.../Ff838369.aspx

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 9
    Par défaut
    Bonjour,

    Oui, j'ai un message d'erreur, j'ai un VALEUR sur ma cellule qui apparait. Je ne sais pas vraiment en dire plus.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il faudrait que tu nous expliques quelle est la finalité de ton code et nous donner plus d'informations sur les éléments déjà présent (comme List1 et List2). De ce que j'ai compris tu cherches à récupérer le résultat de la fonction Intercept dans une cellule c'est sa ?

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 9
    Par défaut
    Bonjour Oudouner,

    Merci de ton aide
    List1 =A9:J9
    List2=M9:V9

    Ces deux plages contiennent 10 cellules, sauf que selon les cas je ne remplis pas ces 10 cellules.

    J'ai une autre fonction qui calcule n : le nombre de cellules non vides dans list1
    A partir de ce nombre entier n, je veux redimensionner mes deux listes pour utiliser la fonction intercept et calculer l'ordonnée à l'origine de mes deux selections. (List1 correspond à mes Y et List2 à mes X)

    Et comme tu l'as dit, je veux récuperer ce résultat dans ma cellule

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    j'ai un VALEUR
    ne peut être que le résultat de l'application d'une formule mise dans la cellule concernée et non DIRECTEMENT du code que tu nous montres là.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 9
    Par défaut
    Oui en effet, c'est le résultat de
    =ord_orig(A9:J9;M9:V9;5)

  8. #8
    Invité
    Invité(e)
    Par défaut
    C'est déjà un peu plus clair de cette manière. Cependant la remarque de unparia est tout à fait vrai, tu ne peux avoir un VALEUR dans ta cellule uniquement si une fonction Excel est écrite dedans, es-tu sur de bien écrire le résultat trouvé dans ta fonction dans ta cellule ?

  9. #9
    Expert éminent 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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function ord_orig(List1, List2, n As Integer)
    Déjà, pour coder proprement, il faudrait mettre le type de chaque paramètre et le type de valeur renvoyé par la fonction.

    Si tes "ListX" sont des références de cellules et que tu veux que la fonction renvoie une référence de cellules, il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function ord_orig(List1 As Range, List2 As Range, n As Integer) As Range
    Mais, à mon avis, au lieu d'utiliser une fonction personnalisée, tu devrais aller regarder la fonction DECALER() qui fait la même chose que tes Resize.
    https://support.office.com/fr-fr/art...rs=fr-FR&ad=FR

Discussions similaires

  1. [XL-2010] Aide pour optimisation code VBA
    Par adelas93 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/11/2014, 13h56
  2. Aide pour un code VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/10/2013, 13h46
  3. [XL-2007] Besoin d'aide pour création code VBA
    Par francky62000 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/01/2012, 22h51
  4. Aide pour un code VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/07/2008, 10h09
  5. Aide pour un code Vba
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/10/2007, 16h03

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