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 :

Exclusion des fichiers ayant une 1 seule feuille et automatisme


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Août 2018
    Messages : 2
    Par défaut Exclusion des fichiers ayant une 1 seule feuille et automatisme
    Bonjour

    J'ai besoin d'avoir votre aide pour le code VBA ci-dessous.

    En effet ce code permet de copie le contenue de la feuille 2 de plusieurs fichiers et d'alimenter tout le contenu sur une seule feuille.

    Je cherche à avoir dans le code, une exclusion des fichiers ayant une 1 seule feuille et l'automatisme lors qu'un fichier ouvert demande une mise à jour (lien sur d'autres fichiers) avec réponse négative de la mise à jour.

    Merci d'avance pour votre aide.

    Salutations.

    Jean-Marc

    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
    Sub Test()
    '''''''''''''''''''''''''''''''
    '''Compte nombre de fichier pour la boucle
     
        Dim Chemin As String
        Dim i As Integer
        Dim FileName As String
     
        Chemin = "fullpath"
        Set ofso = CreateObject("Scripting.FileSystemObject")
     
        Set oFolder = ofso.GetFolder(Chemin)
     
        Set oFiles = oFolder.Files
     
    Dim x As Integer
    For Each file In oFiles
    ''''''''''''''''''''''''''''''''''''''
     
        Dim sFichier As String 'chemin du fichier source
        Dim oWBSource As Workbook 'fichier source
        Dim oShSource As Worksheet 'onglet source
        Dim oShCible As Worksheet 'onglet où on récupère
        Dim FullName As String
            FileName = file.Name
            FullName = Chemin + "\" + FileName
     
        'chemin du fichier source
     
        sFichier = FullName
     
        'vérif existe
     
        If Dir(sFichier) = "" Then
            MsgBox "Fichier absent : " & vbCrLf & sFichier, vbExclamation
            Exit Sub
        End If
     
        'cet onglet
        Set oShCible = Worksheets(1)
     
        'ouverture en lecture seule
        Set oWBSource = Workbooks.Open(sFichier, , True)
     
        'onglet
        Set oShSource = Worksheets(2)  'voir quel onglet on veut traiter
        'récupération d'une valeur (exemple)
        oShSource.Range("B2:F100000").Copy
        oShCible.Cells(oShCible.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial (xlPasteValues)
     
        'fermeture sans enregistrer
        oWBSource.Close False
     
        Set oShSource = Nothing
        Set oWBSource = Nothing
        Set oShCible = Nothing
     
      Next
     
     
    End Sub

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pour neutraliser la mise à jour des liens, utilises le paramètre dédié de la méthode Workbooks.Open

    pour exclure les feuilles ne disposant que d'une seule feuille, il suffit de cette condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If oWBSource.WorkSheets.Count > 1 Then
        ' Traitement/Copie
    End If

Discussions similaires

  1. [Batch] Déplacer des fichiers ayant une chaine de caractère précise
    Par SkitsVicious dans le forum Scripts/Batch
    Réponses: 18
    Dernier message: 11/05/2016, 13h27
  2. Réponses: 2
    Dernier message: 19/05/2014, 14h39
  3. [SWFUpload] Envoi des fichiers en une seule requête
    Par khmerian dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 27/04/2011, 15h57
  4. Interet de mettre des fichiers dans une base de donnée
    Par Oberown dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 04/07/2005, 11h35
  5. |VB6] Comment Lister les liens vers des fichiers d'une page web
    Par Mayti4 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 18/01/2005, 18h17

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