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

Excel Discussion :

VBA: Parcourir les colonnes d'un fichier


Sujet :

Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut VBA: Parcourir les colonnes d'un fichier
    Bonjour,

    Je tourne en rond pour un problème tout simple... A partir d'un fichier excel existant je veux ouvrir et je lire un autre fichier. Jusque là, pas de problème, j'arrive à lancer une application excel et ouvrir mon fichier.

    Maintenant je voudrais tester une à une les entêtes d'un tableau contenu dans ce fichier. Par exemple si une entête "T" est dans le UsedRange, je considère que la colonne température est présente et je mets la valeur booléenne correspondante à TRUE.

    Je voulais donc faire ceci, mais ça ne marche pas -> ActiveCell.Value est soit vide soit incohérent...!
    -------------------------------------------------------------------------
    'Open the file in a temporary excel application
    '----------------------------------------------
    Set AppSource = CreateObject("Excel.Application")
    Set wbSource = AppSource.Workbooks.Open(strFile, ReadOnly:=True)
    AppSource.Visible = True

    'Input File test
    '---------------
    Dim strLocation As String
    Dim intCol As Integer
    strLocation = wbSource.Worksheets(1).Cells(1, 1).Value

    If wbSource.Worksheets(1).Cells(1, 1) <> Empty Then boolLocation = True
    If wbSource.Worksheets(1).Cells(2, 1) <> Empty Then boolLatitude = True

    ' C'est ici que j'ai un problème:
    wbSource.Worksheets(1).Cells(4, 1).Active
    For i = 1 To wbSource.Worksheets(1).UsedRange.Columns.Count
    If ActiveCell.Value = "<G_Bh>" Then boolBeamRadiation = True
    If ActiveCell.Value = "<G_Dh>" Then boolDiffuseRadiation = True
    If ActiveCell.Value = "<G_Dh>" Then boolGlobalRadiation = True
    If ActiveCell.Value = " dy" Or ActiveCell.Value = "dy" Then boolDay = True
    If ActiveCell.Value = " h" Or ActiveCell.Value = "h" Then boolHour = True
    If ActiveCell.Value = " FF" Or ActiveCell.Value = "FF" Then boolWindSpeed = True
    ActiveCell.Offset(0, 1).Activate
    Next i

    --------------------------------------------------------------------------

    Si quelqu'un peu me dépanner... Je le remercie d'avance!!

  2. #2
    Expert éminent sénior

    Avatar de Deepin
    Homme Profil pro
    Ingénieur - Chef de projet Modélisation/Simulation
    Inscrit en
    Avril 2004
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ingénieur - Chef de projet Modélisation/Simulation
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 164
    Points : 51 026
    Points
    51 026
    Par défaut
    il n'y a aucun intérêt à utiliser ActiveCell

    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
    For i = 1 To wbSource.Worksheets(1).UsedRange.Columns.Count
       Select Case wbSource.Worksheets(1).Cells(4, 1).offset(,i-1).Value
          Case "<G_Bh>" 
              boolBeamRadiation = True
     
          Case "<G_Dh>" 
              boolDiffuseRadiation = True
              boolGlobalRadiation = True
     
          Case " dy", "dy
              boolDay = True
     
          Case " h", "h" 
              boolHour = True
     
          Case " FF", "FF" 
              boolWindSpeed = True
     
       End Select
     
    Next i

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup. Je commence en vba alors je me doute que mes codes ne sont pas optimum . En tout cas c'est très gentil d'avoir pris le temps de me répondre.

    J'aurai encore sans doute d'autres questions à venir...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 172
    Points : 99
    Points
    99
    Par défaut
    L'enregistreur de macro aide pas mal pour les débutants comme moi, aprés faut donner de grand coups de couteaux dans l'usine à gaz ^^

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

Discussions similaires

  1. fusionner selectivement les colonnes de plusieurs fichiers
    Par falcon dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 20/05/2008, 11h16
  2. Réponses: 3
    Dernier message: 18/10/2007, 12h26
  3. Réponses: 9
    Dernier message: 25/07/2007, 13h02
  4. Remplir les colonnes d'un fichier excel
    Par craryb dans le forum MFC
    Réponses: 3
    Dernier message: 14/03/2007, 12h37
  5. [VBA] Trier les colonnes d'une listview
    Par alncool dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/09/2005, 14h12

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