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 :

Modifier une cellule dans plusieurs classeurs fermés


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut Modifier une cellule dans plusieurs classeurs fermés
    Bonjour à tous,

    Voilà mon problème, j'ai une adresse a modifier sur 150 fichiers excel. Dans la meme cellule du même onglet.
    Je me demandais s'il existait une solution pour exécuter cette action sous VBA.
    J'ai notamment penser a un rechercher /remplacer multiple à l'aide d'un répertoire sur lequel il y a tout les fichiers a modifier.

    Merci d'avance

    (çela me ferait économiser enormément de temps)

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, à voir
    Lire et écrire dans les classeurs Excel fermés
    La FAQ
    Tout cela à insérer dans une procédure d'une appli qui liste les fichiers, par exemple celle-ci : Liste des fichiers d'un dossier

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Re, prendre le fichier Liste des fichiers d'un dossier, le sauvegarder si nécessaire en *.xlsb, ajouter dans un module de base les procédures/fonctions suivantes EcritureFichiers et FeuilleExiste.
    Créer un bouton et l'affecter à la procédure EcritureFichiers

    Dans cet exemple il s'agit de la cellule 2,2 de la feuille "Feuil3" qui est modifiée. A adapter à ton contexte. Moins de 14s pour 150 fichiers bidons.
    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
    Option Explicit
    
    Sub EcritureFichiers()
    Dim LastRow As Long, i As Long, FSO As Object
    Dim sFichier As String, sFeuille As String
    Dim Wkb As Workbook, Wsh As Worksheet, j As Long
    Dim sVal As String
    
        sFeuille = "Feuil3"
        sVal = "123456"
        
        LastRow = ShParam.Range("B" & Rows.Count).End(xlUp).Row
        If LastRow < RDepart Then Exit Sub
        Application.ScreenUpdating = False
        Set FSO = CreateObject("Scripting.FileSystemObject")
    
        For i = RDepart To LastRow
            sFichier = ShParam.Range("A1") & "\" & ShParam.Cells(i, 2)
            If FSO.FileExists(sFichier) Then
                Set Wkb = Workbooks.Open(Filename:=sFichier)
                For j = 1 To Wkb.Sheets.Count
                     If FeuilleExiste(sFeuille, Wkb) Then
                        Set Wsh = Wkb.Worksheets(sFeuille)
                        Wsh.Cells(2, 2) = sVal
                        Set Wsh = Nothing
                        Exit For
                    End If
                Next j
                Wkb.Save
                Wkb.Close
    
                Set Wkb = Nothing
            End If
        Next i
        Set FSO = Nothing
        Application.ScreenUpdating = True
    End Sub
    
    Private Function FeuilleExiste(sNomFeuille As String, Classeur As Workbook) As Boolean
    Dim Wsh As Worksheet
        FeuilleExiste = False
        For Each Wsh In Classeur.Worksheets
            If Wsh.Name = sNomFeuille Then
                FeuilleExiste = True
                Exit For
            End If
        Next Wsh
    End Function
    Images attachées Images attachées  

  4. #4
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut
    Salut,

    Merci beaucoup pour ta réponse, je vais tester tout ça et reviens vers toi.
    Concernant le sujet de la discussion, je ne trouve pas le bouton modifier, dsl je suis débutant sur ce forum.
    Peux tu m'indiquer ou il se trouve ?

    Merci encore.

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, il faut être logger et le bouton "Modifier le message" apparaîtra à la gauche de "Répondre avec citation" et des boutons de Vote ( à ne pas oublier ... )
    Images attachées Images attachées  

  6. #6
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut
    Merci beaucoup, tout fonctionne !
    cela me fait gagner un temps fou !

    J'ai deux autres demandes concernant les mêmes fichiers, je dois ouvrir un nouveau topic ?

    1)Je souhaiterai savoir s'il est possible, avec un autre module, de créer des documents pdf d'une feuille (toujours la même) de ces 150 fichiers ?
    (donc 150 documents pdf crées a partir de 150 feuilles provenant de 150 classeurs différents )

    2) Est-il possible d'appliquer une mise en forme général sur le 1er onglet de chaque classeur ? ( exemple : police Arial, taille 10)
    Dans cette mise en forme, est il possible de filtrer ? ( par exemple, sur la colonne Date, ne garder que l'année 2016 + trier ces dates du plus ancien au plus récent )

    Merci beaucoup de votre aide.
    L'entraide rapide et efficace sur les forums n'est donc pas une légende

Discussions similaires

  1. Recherche valeur dans plusieurs feuilles d'un classeur
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/02/2013, 14h20
  2. [XL-2007] Recherche valeur cellule dans plusieurs classeurs fermés
    Par Millenniums dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/04/2011, 20h32
  3. Réponses: 3
    Dernier message: 11/06/2009, 17h49
  4. Recherche simultanée dans plusieurs classeurs
    Par Bomba dans le forum Excel
    Réponses: 1
    Dernier message: 19/04/2008, 00h08
  5. VBA-Recherche d'une feuille dans plusieurs classeurs
    Par derf3183 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/07/2006, 14h50

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