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 débutant


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Par défaut VBA Excel débutant
    Bonjour à tous,

    étant débutant sous VB, j'aurais besoin de vos lumières, si cela ne vous dérange pas!
    Voilà, je dois créer une macro sur un fichier excel qui me créée une nouvelle feuille excel dans le classeur(rien de compliqué pour le moment), mais qui me créée une nouvelle feuille par collaborateurs et qui m'extrait seulement certaines colonnes.
    Je vous joins ce fichier comme exemple avec le traitement à réaliser:
    - Création d'une nouvelle feuille par agents
    - Extraction des colonnes D,E,F,G,J,K,N,O,P,Q

    Je ne sais pas si je me suis bien expliqué.
    Merci pour votre aide.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 173
    Par défaut
    Voilà une macro qui crée une feuille par nom différent. Si tu rajoute des noms, cela est pris en compte automatiquement (il faut juste que les noms identiques se suivent forcément ce qui semble être le cas).

    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
    Sub toto()
        Dim plage As Range
        Dim cellule As Range
     
        Set plage = Worksheets(1).Range("B8", Worksheets(1).Range("B8").End(xlDown))
     
        For Each cellule In plage
            If cellule.Value <> cellule.Offset(-1, 0).Value Then
                Dim nouvelleFeuille As Worksheet
                Set nouvelleFeuille = Worksheets.Add
     
                nouvelleFeuille.Name = cellule.Value
            End If
        Next cellule
     
    End Sub
    Tu souhaites aussi extraire un truc. Je n'ai pas trop compris quoi. Peux tu préciser ta demande ?

    Tu veux qu'on extraie le bout de tableau qui correspond à M Dupont et qu'on le copie dans la feuille Dupont ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Par défaut extraction données tableau excel
    Merci ANOVA,

    Effectivement, je souhaiterais extraire seulement les colonnes ci-dessus (D,E,F,G,J,K,N,O,P,Q) pour chaque collaborateur et les insérer dans la feuille que tu viens de créer (les colonnes correspondants à Dupond dans la feuille Dupond, etc...)
    C'est à dire que je souhaite extraire seulement quelques parties du tableau correspondant pour chaque collaborateur.

    Je sais pas si tu m'as très bien compris.
    En tout cas merci, tu en as déjà fait beaucoup

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 173
    Par défaut
    Je pense que c'est ça que tu veux :

    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
    Sub toto2()
        Dim feuille As Worksheet
        Dim nomPersonne As String
     
        For Each feuille In Worksheets
            nomPersonne = feuille.Name
            Dim plage As Range
            Dim cellule As Range
     
            Set plage = Worksheets("Feuil1").Range("B8", Worksheets("Feuil1").Range("B8").End(xlDown))
            Dim nbLigne As Integer
            nbLigne = 1
            For Each cellule In plage
                If cellule.Value = nomPersonne Then
                    Worksheets("Feuil1").Range(cellule, cellule.End(xlToRight)).Copy Destination:=Sheets(feuille.Name).Range(Sheets(feuille.Name).Range("A1").Offset(nbLigne, 0).Address)
                    nbLigne = nbLigne + 1
                End If
            Next cellule
        Next feuille
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Par défaut extraction données tableau excel
    Merci ANOVA,

    c'est parfait!
    Mais tu crois que c'est possible de reporter la ligne des intitulés de la feuille 1 dans chaque feuille collaborateur (Nom Agent, N° Agent....)

Discussions similaires

  1. Liste de choix déroulante sur VBA excel - débutante
    Par Amandine P. dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 07/05/2008, 14h55
  2. [VBA Excel Débutant] Tri d'un fichier Excel depuis Access
    Par elgringo2007 dans le forum Access
    Réponses: 3
    Dernier message: 07/08/2006, 16h21
  3. VBA Excel (débutant) - problème avec la copie d'un range
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/01/2006, 16h32
  4. [Débutant] VBA Excel : Liste déroulante
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/12/2005, 14h09
  5. VBA Excel Débutant : Graphique et objet Range
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/11/2005, 18h34

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