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 :

Macro - Débutant en programmation VBA [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2018
    Messages : 30
    Par défaut Macro - Débutant en programmation VBA
    Bonjour amis développeurs,

    C'est avec plaisir que je débute la programmation sur Excel dans le cadre d'un stage dans une entreprise.
    Je dois réaliser une macro pour automatiser des données qui seront traités tous les mois.

    J'écris sur ce forum, car cela fait bientôt 1 semaine que je suis bloqué. En effet, ma macro a pour but :
    - Créer une nouvelle feuille
    - Rennomer la feuille
    - Chercher dans la premiere feuille (qui est la base de données) les personnes qui travaillent dans le pôle "Recherche et developpement"
    - Copier et coller les lignes dans ma nouvelle feuille excel qui correspondent aux personnes qui travaillent dans le pôle recherche et développement

    Cependant, ma macro qui devrait automatiser cette manoeuvre nécessite un travail manuelle (changement de ligne a copier si j'ajoute ou supprime un membre).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Sub Addsheets()
        Sheets.Add(After:=Sheets("Feuil1")).Name = "Agent en recherche et développement"
        Sheets("Feuil1").Select
        Rows("2:23").Select
        Selection.Copy
        Sheets("Agent en recherche et developpement").Select
        Range("A2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Je cherche donc la solution qui dit : "Si il y a "Recherche et developpement" dans les lignes X alors, copier et coller ces lignes dans la feuille "Agent en recherche et developpement"

    Merci pour votre aide,

    Cordialement,

    Le stagiaire

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Regardes du coté des filtres actif ou filtres élaborés.

  3. #3
    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 waramere Voir le message
    J'écris sur ce forum, car cela fait bientôt 1 semaine que je suis bloqué.
    Excuse-moi mais ta "macro" est composé de code brut issu de l'enregistreur de macro (avec ses ribambelles de Select et de paramètres inutiles).
    Il est donc tout à fait improbable que ça t'ait pris une semaine pour obtenir ceci.
    Je crois que tu te moque de nous.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2018
    Messages : 30
    Par défaut
    Merci pour vos réponses, je vais utiliser les filtres car l'autre méthode est beaucoup plus complexe

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2018
    Messages : 30
    Par défaut
    Merci pour votre réponse rapide,

    Mais je ne vois aucune aide dans les liens que vous m'avez envoyer qui me permettrait d'intégrer une condition...

  6. #6
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Waramere, Kiki, bonjour le forum,

    Une proposition fonctionnelle mais pas très rapide... Il faudrait plus de détails pour l'améliorer...

    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
    Sub Macro1()
    Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
    Dim OD As Worksheets 'déclare la variable OD (Onglet Destination)
    Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
    Dim I As Integer 'déclare la variable I (Incrément)
    Dim COL As Byte 'déclare la variable COL (COLonne)
    Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
     
    Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
    Set OS = Worksheets("Feuil1") 'définit l'onglet source OS
    DL = OS.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet OS
    COL = 2 'définit la colonne ou se trouve "Recherche et developpement" (ici 2 : à adapter à ton cas)
    Sheets.Add After:=Sheets("Feuil1") 'ajoute un onglet vierge après l'onglet "Feuil1")
    Set OD = ActiveSheet 'définit l'onglet destination OD
    OD.Name = "Agent en recherche et développement" 'renomme l'onglet destination
    For I = 2 To DL 'boucle sur toutes les lignes I de 2 à DL
        If OS.Cells(I, COL).Value = "Recherche et developpement" Then 'condition 1 : si la cellule ligne I colonne COL est égale à "Recherche et developpement"
            If OD.Range("A1") = "" Then 'condition 2 : si A1 de l'onglet destination OD est vide
                Set DEST = OD.Range("A1") 'définit la cellule de destination DEST (=A1)
            Else 'sinon (condition 2)
                Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST (la première cellule vide de la colonne A de l'onglet OD)
            End If 'fin de la condition 2
            OS.Rows(I).Copy 'copye la ligne I
            DEST.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'colle les valeurs dans DEST
        End If 'fin de la condition 1
    Next I 'prochaine ligne de la boucle
    Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
    End Sub

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

Discussions similaires

  1. [XL-2003] Problème programmation VBA débutant :)
    Par Doby77 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 13/11/2014, 10h20
  2. [XL-2007] Aide pour création de macro - débutant total en VBA
    Par Pierre Jean-Pierre dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/05/2013, 10h36
  3. {EXCEL ou VBA}Création d'une macro (Débutant)
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/05/2007, 15h32
  4. [Débutant] Critères de requete sur dates - Programmation VBA
    Par Sofie109 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 11/01/2007, 15h35
  5. [VBA-E] Lancement automatique d'une macro (débutante)
    Par pom_poir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/11/2005, 17h57

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