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

Access Discussion :

Pilotage d'excel via Access


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 35
    Par défaut Pilotage d'excel via Access
    Bonjour a tous,

    Mon Pb est le suivant:
    Je cherche a effectuer, dans un module Access, des opérations sur un fichier Excel.

    1° - Comment effectuer un "Copier/Collage Spécial (valeur)"
    Voici une parti du code que je voulais utiliser.
    xlSheet.PasteSpecial Paste:=xlPasteValues, Destination:=xlSheet.columns("e")
    Cela ne marche pas !!!

    2° - Est-il possible de définir la feuille Excel a utiliser, lorsque l'on ne connait qu'une partie de son nom
    Actuellement
    set xlsheet = xlbook.worksheets("mafeuilleexcel")
    Besoin
    set xlsheet = xlbook.worksheets("mafeuil*")

    Merci a tous

    PS : Merci aux responsables de ce site, il m'a déja été bien utile !!!

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour,

    Comment effectuer un "Copier/Collage Spécial (valeur)"
    On peut faire comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xlSheet.Range("...").Select
        Selection.Copy
        xlSheet.Range("e").Select
        Selection.PasteSpecial (xlPasteValues)
    Est-il possible de définir la feuille Excel a utiliser, lorsque l'on ne connait qu'une partie de son nom
    A mon avis, non, mais tu peux parcourir la collection de feuilles du classeur en cherchant celle dont le nom est comme "mafeuille*"

    Bon courage,

    pgz

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    pour le 1 les données à copier proviennent d'ou ..?


    Pour le 2..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For each  xlsheet  in  xlbook.worksheets 'Boucle sur les feuille du classeur
        if xlsheet.name like "mafeuil*" then Exit for 'utiliser LCase si probléme majuscule/minuscule..
    next
        if not (xlsheet.name like "mafeuil*")  then 
          MsgBox "Feuille introuvable"
          exit sub '.... à voir...
       endif
    ...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 35
    Par défaut
    Merci de vos reponses

    Pour le 1, je copie 1 colonnes de "mafeuil" vers une autre colonne de "mafeuil"
    mais avec un collage spécial (valeur)

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben pour copier colonne a vers colonne e :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xlsheet.Columns("e").Value = xlsheet.Columns("a").Value

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 35
    Par défaut
    Re-bonjour a tous
    Désolé de vous avoir Quité hier soir mais internet parfois ?????(plus de connection!!!)
    Peut-etre que mon Pb a été mal posé ! désolé
    Pour le cas 1, je crée une colonne (col2) contenant une formule qui converti au format txt les valeurs d'une autre colonne (col1).Il me faut copier les valeurs de col2 vers col3, avec un collage spécial (valeur) afin de conserver le format et pouvoir sup col2 par la suite.(col1 contient des valeurs Num et AlfaNum ce qui pose Pb lors de l'import dans Access (#Nombre*!))
    une partie du code
    xlSheet.Columns("f").copy
    xlSheet.Columns("g").Select
    Selection.PasteSpecial (xlPasteValues)

    les 2 premieres ligne fonctionnent !!!
    la 3eme Non !!

    j'ai essayé divers chose avec le meme résultat !!!

    Pour le cas 2, je recherche un fichier excel.
    celui-ci deviendra le fichier de travail. les differents fichiers ont tous une feuille commençant par le meme nom.(fich1 - feuil=Base toto; fich2 - feuil = Base tata ; fich3 - feuil= Base compl; etc.....)
    en fonction du fichier ouvert la feuille "Base*" doit etre la feuille selectionnée.
    Il me faut donc pouvoir declarer cette feuille
    Set xlSheet = xlBook.WorkSheets("Base*")

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 35
    Par défaut
    Super, Merci BBIL, cela fonctionne avec une petite précision.
    Il faut au préalable mettre la colonne aux format txt
    xlSheet.Columns("l").NumberFormat = "@"
    xlSheet.Columns("l").Value = xlSheet.Columns("k").Value

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 35
    Par défaut
    Doublement merci bbil
    pour le cas 2, ton code m'a donné une idée, et a priori cele fonctionne.

    For Each xlSheet In xlBook.Worksheets
    If xlSheet.Name Like "Base*" Then Exit For
    Next
    If xlSheet.Name Like "Base*" Then
    Feuilselect = xlSheet.Name
    End If
    Set xlSheet = xlBook.Worksheets("Feuilselect")

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

Discussions similaires

  1. Pilotage d'Excel via la classe
    Par petit arbre dans le forum WinDev
    Réponses: 1
    Dernier message: 25/11/2006, 22h40
  2. Executer macros Excel via Access
    Par Echizen1 dans le forum Access
    Réponses: 7
    Dernier message: 20/09/2006, 15h09
  3. supprimer popup macro (excel) via access
    Par Echizen1 dans le forum Access
    Réponses: 9
    Dernier message: 15/09/2006, 17h07
  4. Piloter Excel via Access
    Par elendila dans le forum Access
    Réponses: 3
    Dernier message: 12/07/2006, 17h29
  5. Automation excel via Access -
    Par Celia1303 dans le forum Access
    Réponses: 4
    Dernier message: 18/11/2005, 12h45

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