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 :

Spreadsheet importation, exportation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut Spreadsheet importation, exportation
    Bonjour,
    j'ai un petit soucis sous vba/excel pour un projet avec le contrôle spreadsheet.

    J'ai donc:
    sur mon classeur excel:
    - Des feuilles avec des plages de données allant de B1 à C6

    dans mon formulaire:
    - bouton de commande "init" qui donne les noms de la listbox
    - une listbox contenant les noms des onglets
    - un bouton de commande "save" permet de sauvegarder les modifications du spreadsheet
    - un objet spreadsheet qui me permet de voir les feuilles

    Donc normalement, je clic sur "init", cela actualise la listbox (ensuite surement un autre truc, d'ou l'utilité de ce bouton).
    J'en viens à cliquer sur un des noms de ma listbox, cela m'affiche sur le spreadsheet ma plage de donnée correspondante à l'onglet.
    Je dois pouvoir modifier ces données.
    Et enfin, le bouton "save" qui doit enregistrer les données du spreadsheet actif et les remplacer dans le bon onglet.

    Problème:
    - J'arrive pas à voir mes noms d'onglets (ce code marchait sur mon autre pc en 2003)
    - Quand je clic onglet 2 ensuite 1 puis 2 cela me fait un message d'erreur
    - Je n'arrive pas à exporter correctement les modifications de mon spreadsheet vers l'onglet correspondant à la listbox


    Je viens de passer pas mal de temps à chercher des solutions mais je ne trouve pas comment faire.
    Je suis preneur de toutes les solutions/aides/conseils !

    Merci et bonne journée
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Essayez avec le code modifié

    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
    Public Sub Initialisation_Click()
    Nfichier1 = ActiveWorkbook.Name
    ListBox1.Clear
    For Each sh In Sheets
    ListBox1.AddItem sh.Name
    Next
    End Sub
    Public Sub ListBox1_Click()
    Dim ch As String
    ch = CStr(Init.ListBox1.Value)
    Worksheets(ch).Range("A1:C6").Copy 'plage de donnée pour la listbox
    Spreadsheet1.[a1].Paste 'coller la plage excel dans l'objet spreadsheet
    End Sub
    Public Sub save_Click()
    Spreadsheet1.[a1].CurrentRegion.Copy
    Worksheets(CStr(Init.ListBox1.Value)).Paste
    End Sub
    Private Sub UserForm_Initialize()
    Call Initialisation_Click
    End Sub
    Cordialement.

    PMO
    Patrick Morange

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    Merci beaucoup, cela fonctionne mais ne me colle pas au bon endroit, donc à partir de A1 mais plutôt aléatoirement sur la bonne feuille de destination suivant la cellule active.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Sub save_Click()
    Spreadsheet1.[a1].CurrentRegion.Copy
    Worksheets(CStr(Init.ListBox1.Value)).Paste
    End Sub


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub save_Click()
    Spreadsheet1.Range("A1:G15").Copy
    
    Worksheets(CStr(Init.ListBox1.Value)).Select
    Worksheets(CStr(Init.ListBox1.Value)).Range("A1").Select
    ActiveSheet.Paste
    End Sub
    Voilà, correction apportée, cela me copie correctement à partir de A1 ma plage venant de on spreadsheet.


    Pour mon soucis de clic dans la listbox, j'ai l'impression que le problème vient plus de la mémoire du spreadsheet, car cela m'indique qu'une feuille porte déjà ce nom. Je suppose donc que lors du clic et de l'importation, cela enregistre quelque part cette "image". Je vais donc essayé de supprimer la mémoire du spreadsheet ou bien supprimer le message...

    Encore merci, le bout du Cstr je n'aurais pas trouver tout seul car je ne vois pas trop ce que cela signifie.

    EDIT: Correction ajoutée

Discussions similaires

  1. Import/export Dynamique
    Par Younes dans le forum VBA Access
    Réponses: 8
    Dernier message: 30/01/2009, 16h46
  2. Réponses: 1
    Dernier message: 13/04/2005, 20h52
  3. [DB2]Import/Export
    Par Fabien Celaia dans le forum DB2
    Réponses: 1
    Dernier message: 07/01/2005, 12h56
  4. Précisions sur Import/export
    Par electro dans le forum Import/Export
    Réponses: 9
    Dernier message: 15/10/2004, 13h34
  5. [Newbie] Import / Export Eclipse
    Par Latyr_dev dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/07/2004, 12h22

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