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 pour lire des zones précises non continues. [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
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 37
    Par défaut Macro pour lire des zones précises non continues.
    Bonsoir,
    Je ne suis pas un grand expert d'Excel et du VBA alors merci de votre indulgence.

    Je souhaite lire le fichier excel que je mets en pièce jointe.HOMOL_DM2_DI_1 0 8-v1 0 (3).xlsm
    J'aimerai lire la zone "Filesystems" (ligne 32 dans ce fichier) des onglets 01_DM2 Front 1 et 01_DM2 Middle 1 colonnes par colonnes
    Exemple la colonne "User Owner" des zones "applicatif" et "produits" que je voudrais copier en une seule colonne sans les blancs (lignes vides) dans la feuille "feuil1" contenant la macro.
    Puis les autres colonnes "Group Owner" ... pas spécialement dans l'ordre initial...

    Avec le bout de code suivant j'arrive à ouvrir le fichier puis lire la bonne feuille par contre après ça ne marche pas.
    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
      'On attribue à la variable WbkColle le fichier actuel (celui qui contient la macro)
      Set WbkColle = ThisWorkbook
      'A adapter : Nom des entêtes de colonnes à importer
      Colonnes = Array("Point de Montage", "User Owner", "Group Owner", "Taille")
     
      'Sélection du fichier
      Fichier = Application.GetOpenFilename("Fichiers Excels, *.xls*")
      'En cas de clic sur "ANNULER"
      If Fichier <> False Then
        'On ouvre le fichier en question
        Set WbkCopy = Workbooks.Open(Fichier)
        With WbkCopy.Sheets("01_DM2 Front 1") '==> ADAPTER NOM de la feuille
          'Boucle sur toutes les entêtes des colonnes
          For Col = 1 To .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
            'teste si l'entête correspond à un des noms des colonnes à copier
            Resultat = Application.Match(.Cells(1, Col), Colonnes, 0)
            'Si l'entête est trouvée (colonne à copier)
            If Not IsError(Resultat) Then
              'Copié - Collé ==> ADAPTER NOM de la feuille ou coller ("TRUC" à remplacer)
              .Columns(Col).Copy WbkColle.Sheets("Feuil1").Cells(1, Cells.Columns.Count).End(xlToLeft).Offset(0, 1)
            End If
          Next Col
        End With
        WbkCopy.Close
      End If
    Set WbkCopy = Nothing
    Set WbkColle = Nothing
    End Sub
    De plus les colonnes sont lus dans l'ordre et avec les lignes vides alors que je voudrais les lire dans un autre ordre et je pense en lisant un peu le forum qu'il faut mieux prendre la méthode Find pour lire la zone "Filesystems" et après je ne vois pas trop comment lire la suite.

    Merci de votre aide.

    Thierry.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Par défaut
    Bonjour thierryppp.

    Je ne saisis pas complètement ta demande.
    Pourrais-tu fournir un exemple de résultat que tu souhaites ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 37
    Par défaut Explications
    Bonjour thebenoit59,

    Oui c'est pas très clair.
    Je n'arrive pas à mettre les images désolé...
    Donc ce que j'aimerai c'est dans la partie du fichier correspondant à "Filesystems" ligne 32 pour ce fichier mais la ligne peut changer :
    Prendre les 4 colonnes ci dessous : (ligne 33)

    Point de Montage User Owner Group Owner Taille
    /applis/dm2f dm2fadm dm2f 1,00 Go
    /applis/dm2f/log dm2fadm dm2f 1,00 Go
    /applis/dm2f/tmp dm2fadm dm2f 1,00 Go
    /applis/dm2f/sysout dm2fadm dm2f 1,00 Go
    /applis/dm2f/gcdl dm2fadm dm2f 6,00 Go
    /applis/dm2f/gcl dm2fadm dm2f 15,00 Go
    /applis/dm2f/tcserver dm2fadm dm2f 10,00 Go
    /applis/dm2f/apache dm2fadm dm2f 1,00 Go

    /applis/dm0f dm0fadm dm0f 1,00 Go
    /applis/dm0f/log dm0fadm dm0f 1,00 Go
    /applis/dm0f/sysout dm0fadm dm0f 1,00 Go

    SOUS TOTAL APPLICATIF: 39,00 Go
    /produits/patroldm2f patrol super 1,00 Go
    /produits/patroldm0f patrol super 1,00 Go
    /produits/agcdm0f agcdm0f controlm 2,50 Go
    /produits/oracle oracle dba 6,00 Go


    SOUS TOTAL PRODUITS: 10,50 Go
    /applis/vfef vfefadm vfef 1,00 Go
    /produits/opsware eacfadm eacf 3,00 Go

    Et les remettre dans ce format :

    username groupname mountpoint fsSizeInGigas
    dm2fadm dm2f /applis/dm2f 1,00 Go
    dm2fadm dm2f /applis/dm2f/log 1,00 Go
    dm2fadm dm2f /applis/dm2f/tmp 1,00 Go
    dm2fadm dm2f /applis/dm2f/sysout 1,00 Go
    dm2fadm dm2f /applis/dm2f/gcdl 6,00 Go
    dm2fadm dm2f /applis/dm2f/gcl 15,00 Go
    dm2fadm dm2f /applis/dm2f/tcserver 10,00 Go
    dm2fadm dm2f /applis/dm2f/apache 1,00 Go
    dm0fadm dm0f /applis/dm0f 1,00 Go
    dm0fadm dm0f /applis/dm0f/log 1,00 Go
    dm0fadm dm0f /applis/dm0f/sysout 1,00 Go
    patrol super /produits/patroldm2f 1,00 Go
    patrol super /produits/patroldm0f 1,00 Go
    agcdm0f controlm /produits/agcdm0f 2,50 Go
    oracle dba /produits/oracle 6,00 Go
    vfefadm vfef /applis/vfef 1,00 Go
    eacfadm eacf /produits/opsware 3,00 Go


    Merci,

    Thierry.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Par défaut
    Je ne peux pas accéder au VBA sans le mot de passe :/

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 37
    Par défaut reponse
    Bonjour,

    Oui il y a un mot de passe : zhiping mais justement je ne peux pas modifier ce code VBA très complexe.

    Mais simplement faire une macro dans un autre fichier qui ouvre le fichier finalisé HOMOL_DM2_DI_1 0 8-v1 0 (3).xlsm‎ puis par exemple dans la feuille "01_DM2 Front 1" la partie "Filesystems pour prendre les 4 colonnes et mettre le résultat demandé (4 colonnes dans un autre ordre sans les lignes vides) dans ce nouveau fichier par exemple dans la feuil1.
    Merci,

    Thierry.

  6. #6
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Salut,

    donc si je comprend bien, tu souhaites pouvoir repérer facilement
    la zone Filesystems, actuellement en B32?
    Et j'imagine que ce B32 peut varier.

    Tu peux alors nommer cette cellule, par exemple en FILESYSTEM.
    Et pour sélectionner le plage tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("FILESYSTEM").currentRegion
    Même si ta plage bouge, FILESYSTEM bouge avec!
    Cordialement,

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/04/2011, 09h32
  2. Réponses: 1
    Dernier message: 15/09/2006, 16h23
  3. [VBA-PP] macro pour insérer des images dans PowerPoint
    Par mashpro dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 01/08/2006, 22h56
  4. [VBA-E] Probleme Macro pour gérer des cases à cocher
    Par bibiche2184 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/06/2006, 18h03
  5. macro pour créer des graphiques
    Par Sebastien_INR59 dans le forum Access
    Réponses: 1
    Dernier message: 07/06/2006, 09h44

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