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 Excel - Macro simple


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2016
    Messages : 2
    Par défaut VBA Excel - Macro simple
    Bonjour,

    Je suis novice en terme de VBA. Je souhaite mettre au point une Macro qui fonctionne comme suit :

    Une colonne A contient un Acronym en 3 lettre - du texte - exemple : ARR/ARA/ARU/...
    Une colonne B contient une phrase - du texte
    Une colonne C contient une date

    Je souhaite obtenir en colonne D, la date de la colonne C + "x" jours, en fonction de :

    1.Je souhaite rechercher le mot "Code" dans la colonne B et obtenir en colonne D = "Date de colonne C" + 3 jours
    2.Je souhaite rechercher l'acronym ARA dans la colonne A ET le mot "Code" dans la colonne B , pour obtenir en colonne D = "Date de colonne C" + 5 jours
    3.Je veux que pour toutes les celulles non vides restantes dans la colonne A, il y a en colonne D = "Date de colonne C" + 4 jours (il s'agit de la règle de base)

    Pouvez-vous m'aider ? Me faire une proposition de code ? Une ébauche ?

    Merci de votre aide,
    Cordialement,

    Vinzent219



  2. #2
    Membre expérimenté
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2007
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2007
    Messages : 272
    Par défaut
    Bonjour,

    Difficile à lire un texte justifié à droite !

    Ma question pour avancer :
    Pourquoi passer en VBA ?
    Ne serait-ce pas plus simple de commencer par créer une formule Excel qui réalise la formule édictée avec ses conditions ?

    A+

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2016
    Messages : 2
    Par défaut
    Hello Blepy

    C'est modifié le texte à droite, pardon ^^

    J'ai pensé à faire une formule excel classique, mais j'ai déjà une macro qui effectue un tas d'opérations sur les données en question, j'ai donc besoin d'y inclure ces étapes-là sous forme VBA.

    A+

  4. #4
    Membre confirmé
    Profil pro
    Administration et finances
    Inscrit en
    Mai 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administration et finances
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2012
    Messages : 19
    Par défaut
    Bonjour,
    Voici une proposition :
    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
    Function DateEcheance(strAcro, strTexte, dDateEffet As Date) As Date
    'strAcro  : l'acronyme qui se trouve dans la colonne A
    'strTexte : le texte qui se trouve dans la colonne B
    'dDateEffet : la date qui se trouve dans la colonne C
     
      'la cellule de la colonne B contient-elle le mot CODE (quelle que soit la casse des caractères)
      If InStr(UCase(strTexte), "CODE") > 0 Then
     
        'si oui : la cellule de la colonne contient-elle "ARA" ?
        If strAcro = "ARA" Then
          DateEcheance = dDateEffet + 5
        Else
          DateEcheance = dDateEffet + 3
        End If
     
      'il n'y a ni l'acronyme "ARA" en [A] ni le mot "CODE" en [B]
      ElseIf Not (IsEmpty(strAcro)) Then
        'mais la cellule en [A] n'est pas vide
        DateEcheance = dDateEffet + 4
      Else
        'et la cellule en [A] est vide
        DateEcheance = dDateEffet
      End If
     
    End Function
    Test de la fonction:
    Nom : developpez-message-1.jpg
Affichages : 350
Taille : 85,3 Ko

    Affichage des formules:
    Nom : developpez-message-2.jpg
Affichages : 324
Taille : 116,0 Ko
    Images attachées Images attachées  

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, commencer par lire : Excel et l'enregistreur de macro

  6. #6
    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
    Citation Envoyé par Vinzent219 Voir le message
    J'ai pensé à faire une formule excel classique, mais j'ai déjà une macro qui effectue un tas d'opérations sur les données en question, j'ai donc besoin d'y inclure ces étapes-là sous forme VBA.
    Je ne vois pas trop le rapport.
    Ce n'est pas parce qu'une macro VBA fait certaines opérations que ça interdit l'usage de fonction dans la feuille, surtout si ces fonctions sont plus simples et plus dynamiques.
    Et encore plus si on ne maitrise pas du tout les bases de ce langage.

    Citation Envoyé par Vinzent219 Voir le message
    1.Je souhaite rechercher le mot "Code" dans la colonne B et obtenir en colonne D = "Date de colonne C" + 3 jours
    2.Je souhaite rechercher l'acronym ARA dans la colonne A ET le mot "Code" dans la colonne B , pour obtenir en colonne D = "Date de colonne C" + 5 jours
    3.Je veux que pour toutes les celulles non vides restantes dans la colonne A, il y a en colonne D = "Date de colonne C" + 4 jours (il s'agit de la règle de base)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =C1+SI(ESTERREUR(CHERCHE("Code";B1));4;3+SI(A1="ARA";2;0))

Discussions similaires

  1. [VBA-Excel] - Macro
    Par mimic50 dans le forum VBA Access
    Réponses: 1
    Dernier message: 27/11/2006, 13h25
  2. [VBA-Excel] Macro Création Case à cocher
    Par strifer dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 21/07/2006, 10h18
  3. [VBA-Excel] Macro de mise à jour de Report
    Par strifer dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 13/07/2006, 11h23
  4. [VBA Excel] macro création de feuille
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 29/06/2006, 11h13
  5. [VBA] Excel + macro + aléatoire
    Par spopo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/01/2006, 15h42

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