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 :

executer une macro entre deux dates [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut executer une macro entre deux dates
    Salut,

    J'ai une macro qui copie/colle des valeurs d'une plage dans une autre plage qui correspond à des jours de semaine inclus dans des tableaux mensuels.

    Cela correspond à la ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For i = 1 To 31
      With Range("A" & i)
        If .Value <> "" Then
           'lundi au dimanche
            val_a = Weekday(.Value, vbMonday)
            Range("D" & i).Value = Range("data!B" & val_a + 2).Value
                End If
      End With
    Next i
    Je veux étoffer de sorte que les valeurs ne se collent que si les jours de semaine sont compris dans un intervalle de date déjà saisi par l'utilisateur.

    Par ex si l'intervalle est : du 01/02/2011 au 31/03/2011, les valeurs ne seront collées que dans les lignes où les jours de semaine seront compris dans cet intervalle.

    J'ai cherché une fonction pour cela, mais je trouve de tout.

    Si quelqu'un pouvait m'orienter vers une fonction simple à utiliser

    Merci

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,

    Tu peux facilement gérer ça par des IF:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    DateDeb = DateSerial(2011, 2, 1) 'A toi de voir comment l'utilisateur indiquera cette info
    DateFin = DateSerial(2011, 3, 31)
     
    For i = 1 To 31
      With Range("A" & i)
        If .Value <> "" And .Value >= DateDeb And .Value <= DateFin Then
           'lundi au dimanche
            val_a = Weekday(.Value, vbMonday)
            Range("D" & i).Value = Range("data!B" & val_a + 2).Value
        End If
      End With
    Next i
    N'oubliez pas le si votre problème est solutionné.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Salut Fvandermeulen,

    OK, impeccable

    ça fonctionne très bien

    je te remercie

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

Discussions similaires

  1. Calculer une différence entre deux dates
    Par attif0709 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/04/2010, 12h06
  2. Calcul d'une somme entre deux dates
    Par Pierre67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/03/2010, 22h48
  3. Extraire le résultat d'une BDD entre deux dates
    Par Filipegomes dans le forum C#
    Réponses: 3
    Dernier message: 14/11/2007, 17h47
  4. Extraire le résultat d'une BDD entre deux dates
    Par Filipegomes dans le forum Access
    Réponses: 4
    Dernier message: 13/11/2007, 17h30
  5. Réponses: 1
    Dernier message: 05/10/2006, 04h20

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