Remplir une colonne avec VBA en fonction des autres colonnes

16ms-bean.xlsm (19.66 Ko)

Bonsoir

Je suis heureux de revenir sur ce forum après tout ce qu'il m'a apporté pour l'écriture d'un algorithme de trading sur excel.

Je n'imaginais pas qu'Excel allait me donner une telle avance sur les marchés financiers

Mille Merci une fois de plus et bonne année par anticipation pour tous les membres

Ce soir mon probleme est le suivant je souhaite remplir par VBA un tableau qui enregistre les ordres placé selon les conditions suivantes.

- Remplir la colonne "OUT" avec "GAGNANT" si la colonne "EN COURS" = "OK" et la colonne "ETATS" = "POSITIF"

- Remplir la colonne "OUT2" avec "PERDANT" si la colonne "EN COURS" = "OK" et la colonne "ETATS" = "NEGATIF"

- Ne rien faire si aucune condition n'est remplie

Bonsoir

Mettez ces formules :
- en D2 --> =SI(ET([@[EN COURS]]="Ok";[@ETATS]="POSITIF"); "GAGNANT";"")
- en E2 --> =SI(ET([@[EN COURS]]="Ok";[@ETATS]="NEGATIF"); "PERDANT";"")

Si ok -->

Crdlt

Bonjour merci pour la réponse.

Est que c'est possible de le faire avec VBA parceque la valeur est dynamique .

Je souhaite juste savoir si l'objectif a été atteint

Bonsoir à tous!

LINSONN, une façon de faire vois si cela te convient...dès que tu vas entrer tes 2 conditions tout se fait automatiquement

Les colonnes "I,J,K,L,M

41ms-bean.xlsm (23.92 Ko)

" sont masquées pour accélérer le traitement

Bonne soirée!

Bonjour,

Est que c'est possible de le faire avec VBA parce que la valeur est dynamique .

Cela n'a pas de sens vous avez un tableau structuré. Si vous appliquez les deux formules en D2 et E2 comme je vous l'ai expliqué, tout le tableau sera mis à jour automatiquement. Il en va de même en cas d'ajout de ligne. A quoi bon compliquer...

Le tableau structuré permet de se passer de VBA dans votre cas. C'est complètement "dynamique" pour reprendre vos termes.

A noter que si vous supprimez une ligne dans tableau structuré, vous devez toujours sélectionner les données dans le tableau uniquement, puis faire click droite --> Supprimer --> "Lignes de tableau" (vous devez toujours voir "lignes de tableau" - très important !)

Je souhaite juste savoir si l'objectif a été atteint

Que voulez-vous dire par là ?

Cordialement

Je souhaite juste savoir si l'objectif a été atteint

en fait la tache consiste à surveiller si les placements en cours ont été cloturé

car un placement peu etre "PERDANT" et "GAGNANT" en fonction de l'évolution du prix.

En fait "PERDANT" et "GAGNANT" indique dans quelle situation les placements ont été cloturé.

Bonjour

en fait la tache consiste à surveiller si les placements en cours ont été cloturé
car un placement peu etre "PERDANT" et "GAGNANT" en fonction de l'évolution du prix.

La solution par formule fonctionne très bien et vous évite le VBA qui, comme je vous l'ai précisé ne vous sert pas dans le cas de votre tableau structuré

Exemple : dans votre fichier rajoutez un donnée en ligne 190, vous verrez de suite que les formules que je vous ai données vont être automatiquement adaptées dans cette nouvelle ligne

Tout cela suppose que vous complété manuellement votre tableau à partir de la dernière ligne vide (ici 190)

Si ok

Crdlt

Merci pour tout le temps que vous m' accordez malgré la situation.

Désolé Mr DAN de ne pas avoir fourni ce détails au départ les données ne sont pas entrées manuellement ce sont des formules .

C'est pour cela que veux du VBA pour me enregistrer l'état de la position .

les données ne sont pas entrées manuellement ce sont des formules

Des formules ? Je ne vois pas de formule en colonne A et B
Juste pour bien comprendre comment vous fonctionnez, expliquez moi comment vous entrez les données en colonne A et B ou comment le tableau est complété
Vous faites un copier coller ?

Bonsoir Mr Dan

Les donnée sont entrées avec une macro ensuite elle sont traitée avec des formules sur plusieurs colonnes et comme c'est un tableau de plus de 80 colonnes le tableau est lié à plusieurs Feuille je n'ai pas voulu importer tout le programme j'ai juste monté un exemple à traiter dans le forum.

VBA me permettra d'avoir les resultats fixe a la fin

Les donnée sont entrées avec une macro

1. Les données sont entrées dans quelles colonnes de votre tableau ?
2. Les colonnes A et B sont complétées par code ?

Peut être voir votre code d'importation aiderait à vous donner la meilleur solution

Cordialement

VBA seul peut fournir un resultat fixe;

- Si j'utilise les formules les positions gagnantes seront reprise car le prix dans G2 évolu à la baisse et à la hausse en permanence et pourtant la procédure est censées s'arreter.

- pendant que les positions perdantes sont censées reprendre jusqu’à ce qont ai gagnant. Dans la colonne "OUT"

- Je souhaite enregistrer "PERDANT" dans la colonne "OUT2" et "GAGNANT" dans la colonne "OUT" AVEC VBA

- Je souhaite copier le resultat de colonne VOLUME FINAL dans la colonne "VOLUME" si "OUT" égal à "GAGNANT ou "OUT2" égal à "PERDANT" AVEC VBA

15ms-bean.xlsm (35.15 Ko)

Le OK est placé manuellement ?

Si oui, on peut faire agir le code par rapport à cela ou alors vous voulez via un bouton ?

Rem : chose importante, ne jamais avoir de lignes sans données dans un tableau struturé. les lignes 6 et 7 sont à supprimer

Bonjour à tous!

LINSONN, le fichier que je vous ai proposé au post # 4 remplissait vos demandes initiales je pense, vous n'avez jamais donné vos impressions ou commentaires j'aimerais savoir si c'est ce que vous recherchiez en fin de compte...

Bonne journée !

Bonsoir nordik_Nation.

Désolé de ne pas avoir donné suite à votre solution directement .

Votre solution avait resolut le probleme tel que je l'avais exposé.

je me suis juste rendu compte que je n'avais pas bien exposé tout mon probleme car je voulais par la suite copier les volumes de la colonne "VOLUME FINAL" vert la colonne "VOLUME" au fur et a mesure que les conditions 'PERDANT' ou 'GAGNANT' sont remplis. Sincèrement désolé.

Oui Mr DAN Le OK est placé avec la macro.

Cordialement.

Bonjour,

Oui Mr DAN Le OK est placé avec la macro.

Je n'ai pas compris. Ce n'était pas l'objet ma question dans mon post --> https://forum.excel-pratique.com/s/goto/1111601

Le code que je vous ai préparé ira vérifier que le OK se trouve dans la cellule avant de mettre les informations "Perdant", "gagnant et "volume" dans les colonnes respectives. Cela implique qu'il faut que le OK soit présent. A voir si cela est correct pour vous ou pas.

Si le Ok est placé avec la macro (comme vous le dites), sur base de quel critère le code doit mettre le OK ou EN ATTENTE dans cette colonne E ?

Désolé de mes questions mais si vous voulez un code il faut que je comprenne comment vous fonctionnez

Cordialement

Bonjour Mr DAN .

Je voulais par là dire que 04 colonnes "IDENTITE", "PRICE", "EN COURS4" et "ACTIVITE" sont collées par la macro et qu'il est mieux passer par une bouton qui repete la tache chaque seconde.

Re

Dans votre fichier posté ici https://forum.excel-pratique.com/s/goto/1111588, ajoutez le code ci-dessous

Sub maj()
Dim cel As Range
Dim lig As Integer

With Worksheets("Feuil2").ListObjects("POSITION")
    lig = .HeaderRowRange.Row
    .ListColumns(6).DataBodyRange.ClearContents
    .ListColumns(7).DataBodyRange.ClearContents
    .ListColumns(9).DataBodyRange.ClearContents

    For Each cel In .ListColumns(3).DataBodyRange
        If UCase(cel) = "OK" Then
            Select Case UCase(cel.Offset(0, 1))
                Case Is = "NEGATIF": .DataBodyRange(cel.Row - lig, 7) = "PERDANT"
                Case Is = "POSITIF": .DataBodyRange(cel.Row - lig, 6) = "GAGNANT"
            End Select
            .DataBodyRange(cel.Row - lig, 9) = .DataBodyRange(cel.Row - lig, 8)
        End If
    Next cel

End With
End Sub

Ensuite associez-le à un bouton placé sur votre feuille.

Pour la mise à jour, cliquez sur ce bouton pour exécuter le code

Cordialement

Merci Mr DAN

C'est magnifique

J'ai adapté le code à mon programme il execute très bien les taches.

Un million de merci.

Rechercher des sujets similaires à "remplir colonne vba fonction colonnes"