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 :

Formule IF condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 118
    Par défaut Formule IF condition
    Bonjour

    Mon code ci dessous me permet de tirer un tableau plus succint d'un onglet à un autre


    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
    Sub Macro1()
       Dim ad As Range 'déclare la variable ad (Anciennes Données)
       Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
       Dim pl As Range 'déclare la variable pl (PLage)
       Dim cel As Range 'déclare la variable cel (CELlule)
       Dim dest As Range 'déclare la variable dest (cellule de DESTination)
     
     
      Set ad = Sheets("Port_MOMENTUM").Range("BT173").CurrentRegion 'définit la plage des anciennes données
       If ad.Rows.Count > 1 Then 'condition : si ad contient plus d'une seule ligne
           Set ad = ad.Offset(1, 0).Resize(ad.Rows.Count - 1, ad.Columns.Count) 'redéfinit ad (sans la première ligne)
           ad.Clear 'efface ad
       End If 'fin de la condition
     
     
      With Sheets("Daily Equity")  'prend en compte l'onglet "Feuil1"
           dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée de la colonne A
     
     
          Set pl = .Range("A2:A" & dl) 'définit la plage pl
     
      End With 'fin de la prise en compte de l'onglet "Feuil1"
       For Each cel In pl 'boucle sur toutes les cellule cel de la plage pl
           'condition : si la date correspond
     
           If Day(cel.Value) = Day(Date) And Month(cel.Value) = Month(Date) And Year(cel.Value) = Year(Date) Then
               'définit la cellle de destination
               Set dest = IIf(Sheets("Port_MOMENTUM").Range("BT173") = "", Sheets("Port_MOMENTUM").Range("BT173"), Sheets("Port_MOMENTUM").Cells(Application.Rows.Count, 72).End(xlUp).Offset(1, 0))
               dest.Value = cel.Value 'récupère la date
               dest.Offset(0, 1).Value = cel.Offset(0, 4).Value 'récupère le code isin
               dest.Offset(0, 2).Value = cel.Offset(0, 3).Value 'reçupère le nom de la valeur
               dest.Offset(0, 3).Value = cel.Offset(0, 12).Value 'récupère la devise
               dest.Offset(0, 4).Value = cel.Offset(0, 11).Value 'récupère la quantité
               dest.Offset(0, 5).Value = cel.Offset(0, 6).Value 'récupère le sens
               dest.Offset(0, 6).Value = cel.Offset(0, 15).Value 'récupère le cours
           End If 'fin de la condition
       Next cel 'prochaine celllule de la boucle
       End Sub
    Voici un exemple avec un fichier excel ci dessous!

    J'aimerais maintenant rajouter une deuxieme condition a ce code

    Si dans la colonne B il y a marqué Momentum alors on reprend la ligne dans le tableau plus succint sinon non

    Thanks in advance

    Bonne journée
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    la double condition devrait pouvoir s'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DateValue(cel.Value) = Date And cel.Offset(0, 1) = "Momentum" Then
    Cordialement.

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

Discussions similaires

  1. Pb avec formule et condition
    Par devdev dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/03/2009, 21h17
  2. Formule plusieurs conditions
    Par campello dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/03/2009, 11h00
  3. Comment formuler les conditions imbriquées
    Par itzik92 dans le forum IHM
    Réponses: 2
    Dernier message: 30/09/2008, 23h16
  4. Réponses: 6
    Dernier message: 16/05/2008, 09h04
  5. Comment formuler ma condition en SQL
    Par 3adoula dans le forum Langage SQL
    Réponses: 5
    Dernier message: 23/01/2008, 15h27

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