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 :

Modification dans cellule de fichier fermé


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Points : 712
    Points
    712
    Par défaut Modification dans cellule de fichier fermé
    Bonjour à tous

    Je bloque depuis quelques jours sur le problème suivant :

    J'aimerai modifier un caractère "x" par un autre caractère "y" de toutes les cellules, en comportant, d'un fichier FERME. Il y a plusieurs feuilles, plusieurs lignes et colonnes, et surtout il peut y avoir plusieurs fois le même caractère dans une cellule.

    La première ligne de chaque feuille n'est pas identique.
    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
    Sub modifie_fichier_ferme_interieur_cellules()
    Dim cnn, Feuille, i  
     
      Set cnn = New ADODB.Connection
      cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=0;DBQ=" & _
          ThisWorkbook.Path & "\" & "fichiercible"
     
    'Boucle sur les feuilles
    For i = 1 To 5  ' 5 étant un exemple de nbfeuilles
    Feuille = "Feuil" & i & "$"
     
    'ligne de départ d'idée, mais qui fonctionne pas sur un fichier fermé
        Cells.Replace What:="x", Replacement:="y", LookAt:=xlPart, SearchOrder _
            :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
     
    Next i
     
      cnn.Close
      Set cnn = Nothing
    End Sub
    Je pars de ce code, mais bien sur il ne fonctionne pas. Que dois-je écrire ?

    Dois-je nommer les plages, et si oui, comment ? toujours en fichier fermé

    La solution que j'avais envisagé était de pointer sur chaque cellule, repérer chaque caractère "x" et modifier en "y", mais comme il y a plusieurs centaines de cellules.... Je me demandais s'il n'y avait pas quelque chose de beaucoup plus simple et plus rapide.

    Cette manipulation est à exécuter plusieurs fois par mois et sur des fichiers différents.

    Merci d'éclairer ma lanterne

    Eric

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Tes feuilles sont-elles bien organisées comme des "base de données", c'est-à-dire en colonnes avec des en-têtes, sur la première ligne, à chaque colonne?

    Si oui, tu peux travailler dans les fichiers quand ils sont fermés mais tu dois le faire par des requêtes SQL ou par les commandes du moteur Jet.
    Tu n'as pas un accès direct aux cellules des feuilles.

  3. #3
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Points : 712
    Points
    712
    Par défaut
    Bonsoir à tous
    Bonsoir Alain

    Citation Envoyé par AlainTech Voir le message
    Tes feuilles sont-elles bien organisées comme des "base de données", c'est-à-dire en colonnes avec des en-têtes, sur la première ligne, à chaque colonne?
    Oui elles sont organisées, mais pas identiques.

    Merci pour cette piste que je commençais à explorer. Je me plonge complètement dedans et je reviens si nécessaire.

    Eric

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/07/2014, 17h20
  2. [XL-2010] Recherche cellule dans un fichier fermé
    Par thimote dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/03/2013, 14h19
  3. [XL-2007] Incorporer date si modification dans cellules
    Par manusp dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/01/2012, 22h20
  4. Copier une plage de cellules dans un fichier fermé
    Par COCONUT2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/07/2007, 17h23
  5. [VBA] Copier une plage de cellules dans un fichier fermé
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/01/2006, 16h52

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