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-E] Problème d'éxecution d'un programme


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 38
    Par défaut [VBA-E] Problème d'éxecution d'un programme
    Salut tout le monde!
    Voilà j'ai un petit problème dans mon code VBA.
    Je souhaite créer une fonction qui en entrée prend un Range de cellule ainsi que d'autres paramètres et en sortie, la fonction écrit juste à droite de la première colonne les résultats. En entrée j'ai par exemple:
    25
    26
    27
    28
    30
    et la fonction devra faire
    25 Achete
    26 Vends
    27 Achete
    28 Achete
    30 Vends
    Donc pour cela, je me place sur la première cellule et j'appelle ma fonction. Dans mon code, je fais un:
    For Each Cell In selection
    ...CODE...
    NEXT
    Pour afficher les ordres "Achete", "Vends", je fais un :
    cell.offset(0,1).FORMULAR1C1="Achete"
    ou
    cell.offset(0,1).FORMULAR1C1="Vends"
    Le problème c'est que ça ne marche pas...
    J'ai mis des points d'arrêts et j'ai debbugé et je me suis apperçu que dès que le programme arrive à cette ligne:
    cell.offset(0,1).FORMULAR1C1="Achete"
    ça bug!! Quelqu'un sait pourquoi?
    Si je ne peux pas écrire le résultat dans ma cellule comment traiter ce problème??
    Merci pour votre aide,

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je croyais t'avoir répondu mais mon message a disparu. Essaie ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cell.offset(0,1).Value="Achete"
    ou
    cell.offset(0,1).Value="Vends"
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 38
    Par défaut
    Merci pour ta réponse,
    J'ai essayé avec le ".value" et ça ne marche pas

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Montre ton code, avant et dans ta boucle (Ce qui m'intéresse c'est ta "Selection" et ta boucle
    A+

    Tu dis "Ça bug !"
    Où ? Quel message ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 38
    Par défaut
    ça bug car ça n'écrit pas les ordres dans mes cellules et ça me met : #VALEUR!
    Voici mon code
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
     
    Function trading(selection As Range, nb_std As Double, moyenne As Double, std As Double) As String
    Dim rdt_jour As Double
    Dim lim1, lim2, lim3, lim4, limMax, limMin As Double
    Dim cell As Range
    'Definition de notre pnl
    Dim pnl As Double
     
     
     
    'Definition des limites qui vont decider de notre achat ou non
    lim1 = moyenne + nb_std * std
    lim2 = moyenne + (nb_std + 1) * std
    limMax = moyenne + (nb_std + 2) * std
     
    lim3 = moyenne - nb_std * std
    lim4 = moyenne - (nb_std + 1) * std
    limMin = moyenne - (nb_std + 2) * std
     
    For Each cell In selection
        rdt_jour = cell.Value
        Dim current_signal As String
     
        Select Case rdt_jour
     
        'Règles d'entrée sortie en cas de hausse
        Case moyenne To lim1
            current_signal = "Achete 1"
            updateOrder (current_signal)
            cell.Offset(0, 1).Value = current_signal
        Case lim1 To lim2
            current_signal = "Achete 2"
            updateOrder (current_signal)
            cell.Offset(0, 1).Value = current_signal
        Case Is > lim2, previous_Signal = "Achete 2"
            current_signal = "Vendre 2"
            updateOrder (current_signal)
            cell.Offset(0, 1).Value = current_signal
     
     
     
        'Règles d'entrée sortie en cas de baisse
     
        Case moyenne To lim3
            current_signal = "Vendre 1"
            updateOrder (current_signal)
            cell.Offset(0, 1).Value = current_signal
        Case lim3 To lim4
            current_signal = "Vendre 2"
            updateOrder (current_signal)
            cell.Offset(0, 1).Value = current_signal
        Case Is < lim4, lastOrder = "Vendre 2"
            current_signal = "Achete 2"
            updateOrder (current_signal)
            cell.Offset(0, 1).Value = current_signal
     
        'Cas où rien ne se passe
        Case Else
            cell.Offset(0, 1).Value = "Rien"
        End Select
    Next
     
     
    trading = "ok"
     
    End Function

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    C'est bien ce qu'il me semblait, tu utilises "selection" dans
    For Each cell In selection
    alors que selection est un mot clé. Tu perturbes VBA
    Change de nom de paramètre, pour commencer. Ensuite tu dis si tu as toujours une erreur.
    Tu connais Debug.print ? A ta place je l'utiliserais pour vérifier les paramètres passés à la fonction
    A+

    NB - Balise ton code : tu le sélectionnes puis un clic sur #

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probléme à l'éxecution d'un programme mpi
    Par NGeVtC87 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 31/12/2011, 16h16
  2. Problème d'éxecution dans mon programme
    Par mouchT8 dans le forum C
    Réponses: 8
    Dernier message: 16/05/2008, 01h36
  3. [VBA-E]Problème sur la façon d'écrire un programme...
    Par olosta dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/04/2006, 22h57
  4. Problème installation SQL Server 2000 (programme antérieur)
    Par 404Found dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/04/2005, 10h24
  5. VBA Importation problème d'INUPUT BOX
    Par snoopy69 dans le forum Access
    Réponses: 8
    Dernier message: 21/12/2004, 16h36

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