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 :

Ajouter un onglet pour chaque fichier lu


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
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 1
    Par défaut Ajouter un onglet pour chaque fichier lu
    bonjour,

    voici un code que j ai trouvé sur le net et qui me ressort ce que je veux,
    c est a dire que je lis 1 ou plusieurs fichiers et il m 'integre a la suite les infos
    ce que je veux c est qu a chaque fichier ouvert (examiner quoi) , il m ouvre un nouvel onglet

    j'ai essayé , mais a part m'ouvrir tout dans l'onglet import et apres me creer 60 onglets vide, il ne fait rien de plus

    pouvez vous m'aider, voici mon code
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Dim ligne_debut As Integer: Dim colonne_debut As Integer
    Dim ligne_fin As Integer: Dim colonne_fin As Integer
    Dim ligne_encours As Integer: Dim colonne_encours As Integer
     
     
    Private Sub importer_Click()
    Dim fichier_choisi As String
    fichier_choisi = Application.GetOpenFilename("Text Files (*.log),*.log", , "Sélectionner les fichier log")
    If (LCase(fichier_choisi) <> "Faux" And fichier_choisi <> "0") Then
      liste_fichiers.AddItem (fichier_choisi)
    End If
     
    End Sub
    Private Sub exporter_Click()
    Dim nom_fichier As String
    ligne_debut = 2: colonne_debut = 2
    ligne_encours = ligne_debut: colonne_encours = colonne_debut
     
    Cells.Clear
     
    For i = 0 To liste_fichiers.ListCount - 1
    lecture (liste_fichiers.List(i))
     
     
    Next i
    traitement
    nom_fichier = Application.GetSaveAsFilename(fileFilter = "Text Files (*.txt),*.txt")
    sortie.Value = nom_fichier
    ecriture (nom_fichier)
     
     
     
     
    End Sub
     
     
    Private Sub fermer_Click()
     
    End Sub
     
    Private Sub lecture(fichier As String)
    Dim depart As Integer, position As Integer
    Dim texte As String, tampon As String
     
    Open fichier For Input As #1
     
    Do While Not EOF(1)
    Line Input #1, texte
    depart = 1: position = 1
    Do While (position <> "0")
    position = InStr(depart, texte, ";", 1)
    If position = 0 Then
        tampon = Mid(texte, depart)
        Sheets("Import").Cells(ligne_encours, colonne_encours).Value = tampon
        Exit Do
        Else
        tampon = Mid(texte, depart, position - depart)
     
       End If
       Sheets("Import").Cells(ligne_encours, colonne_encours).Value = tampon
       depart = position + 1
       colonne_encours = colonne_encours + 1
     
      Loop
        colonne_encours = colonne_debut
        ligne_encours = ligne_encours + 1
     
    Rem c est ici que ca se passe
    rem c est ici que je placais mon Sheets.add , mais il me genere autant d'onglet que j ai de ligne dans mes fichiers
    Loop
     
    Close #1
     
     
    End Sub
    Merci , si vous pouvez maider !!

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    donc encore un « fichier trouvé sur le net » ne correspondant pas au besoin …

    Activer l'Enregistreur de macros puis opérer manuellement pour une paire de fichiers à importer :
    une base de code est livrée sur un plateau ! Ensuite en consultant l'aide VBA interne il est facile de le remanier.
    Poster si besoin ce code généré en cas de besoin de l'optimiser et
    en expliquant clairement la difficulté technique rencontrée …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/07/2010, 19h06
  2. Ajouter ligne sup pour chaque groupe de doublon dans une liste
    Par Yashin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/07/2009, 13h42
  3. [Batch] executer une commande pour chaque fichier d'un répertoire
    Par Louis-Guillaume Morand dans le forum Windows
    Réponses: 4
    Dernier message: 10/12/2007, 19h47
  4. Réponses: 1
    Dernier message: 05/05/2006, 15h48
  5. Réponses: 1
    Dernier message: 17/05/2005, 21h50

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