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 d'un xls sans l'ouvrir


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut Modification d'un xls sans l'ouvrir
    Bonjour,

    Je souhaiterais modifier un fichier xls sans avoir a l'ouvrir,
    est ce possible?

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Salut,

    j'ai deja lu que c'etait faisable mais perso je me suis jamais aventuré sur ce terrain.

    Apparement c'est beaucoup plus compliqué (vraiment plus) qu'en l'ouvrant.

    Dis moi, par simple curiosité, pourquoi tu ne veux pas l'ouvrir?? j'ai jamais compris pourquoi on pouvait s'embeter à faire ca au lieu de l'ouvrir et le fermer...

  3. #3
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 487
    Par défaut
    j'ai jamais compris pourquoi on pouvait s'embeter à faire ca au lieu de l'ouvrir et le fermer...
    tout dépend à mon avis de ce qu'on entend par "ouvrir"... Ouvrir véritablement le fichier ou l'ouvrir et ne pas afficher la fenetre ?

    dans ce dernier cas, la méthode .Visible=False peut faire l'affaire...

    laloune

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut
    En fait je dois en modifier plus d'une dizaine à la chaine.
    Vu que c'est des fichiers très gros et en plus reliés à des bases (ce qui m'obligerait a les updater automatiquement).
    Je pense que ce serait plus couteux de ts les ouvrir.

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    c'est effectivement possible en utilisant la méthode ADO, à condition de ne pas vouloir modifier la mise en forme . Il est préférable que le classeur soit structuré sur le meme principe qu'une base pour ne pas créer une usine à gaz .

    le principe de connection et les requetes sont identiques à Access dans la limite des capacité d'Excel :


    il n'est pas possible de supprimer les lignes complétes dans un classeur fermé (enregistrements )
    vous obtiendrez un message d'erreur "La suppression des données dans un table attachée n'est pas géré par le pilote ISAM""
    Vous pourrez uniquement vider les cellules

    Vous ne pourrez pas supprimer les lignes vides qui contenaient les données supprimées et les requetes continueront d'afficher l'es enregistrements vides correspondant à ces lignes vides.

    Il n'est pas possible de supprimer une cellule contenant une formule
    Vous aurez un message d'erreur "L'opération demandée n'est pas autorisée dans ce contexte"

    Excel ne peut pas gérer les connections multiples et simultanées à un meme classeur

    Les requetes répétées peuvent entrainer des problemes de mémoire disponible dans Excel
    http://support.microsoft.com/kb/319998

    Il n'est pas possible d'utiliser un classeur protégé par un mot de passe

    Il n'est pas possible d'utiliser le classeur si la feuille contenant les données est protégée

    La gestion des tables :
    Les onglets ( les tables ) contiennent le symbole $ en fin de nom , ce qui n'est pas le cas des plages de cellules nommées ( pourtant aussi considérées comme des tables lors des requetes )
    Par contre si vous avez ajouté une table dynamiquement dans un classeur ( en utilisant par exemple "Create Table" ou "SELECT INTO" ) , 2 noms différents sont renvoyés pour cette nouvelle table : avec et sans $
    en fait si vous ouvrez le classeur manuellement vous constaterez que l'onglet est bien ajouté mais aussi une plage de cellules nommées correspondant à la plage de données insérées dynamiquement ( voir Insertion/nom/definir ) :par exemple =maNouvelleFeuille!$A$1:$C$1265
    nota
    Lors des requètes pour lister le nom des onglets d'un classeur fermé , par ADOX ou ADO(méthode OpenSchema) , les noms sont renvoyés par ordre alphabétique


    Par défaut , le pilote ODBC analyse uniquement les 8 premieres lignes du classeur fermé pour déterminer le type de données dans chaque colonne.
    Cela peut entrainer 2 types de problemes :
    1. Dans certains cas particuliers , les données exportées vers un classeur fermé peuvent etre tronquées . Si , par exemple , les 8 premiers enregistrements d'un champ contiennent des données texte inférieur ou égal à 255 caractères , le champ sera considéré de type Texte . Si ensuite vous ajoutez des enregistrements de longueur plus importante ils seront tronqués .
    http://support.microsoft.com/kb/189897/
    2. Si vous voulez importer les informations d'une colonne qui contient à la fois des données numériques et texte , c'est le type majoritaire dans les 8 premiere lignes qui définira le type de données à récupérer : les autres données de la colonnes seront considérées comme NULL (vide)
    Si la colonne contient 4 valeurs numériques et 4 valeurs texte , la requete renvoie 4 nombres et 4 valeurs NULL.
    La seule solution consiste à activer l'option d'importation "IMEX=1" ( exemple : "extended properties=""Excel 8.0;IMEX=1""" ) . Les données numériques seront importées comme du texte

    Je n'ai pas vérifié le point suivant , mais l'aide MSDN indique :
    Avertissement concernant la modification de données Excel à l'aide d'ADO : Lorsque vous insérez des données texte , la valeur de texte est précédée d'une apostrophe. Ceci peut provoquer des problèmes par la suite lors du travail avec les nouvelles données.



    bon week end
    michel

Discussions similaires

  1. [XL-2003] Ajout code VBA dans fichiers xls sans les ouvrir
    Par PapouDomi dans le forum Excel
    Réponses: 2
    Dernier message: 14/12/2014, 18h19
  2. [XL-2013] Interagir avec un XLS sans l'ouvrir
    Par DenisHen dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/12/2014, 12h18
  3. Ouvrir un fichier xls sans Microsoft Excel
    Par Spoot dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/12/2009, 21h14
  4. Enregistrer un fichier .txt en .xls sans l'ouvrir
    Par renaud7 dans le forum VBScript
    Réponses: 5
    Dernier message: 08/12/2009, 10h30
  5. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 17h07

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