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 :

Import des données


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 78
    Par défaut Import des données
    Bonsoir,

    j ai besoin de votre aide svp,
    j ai un fichier 1 et fichier 2 et j aimerais emporter des donnes du fichier 2 au fichier 1.
    je veux importer des données de toute les feuilles sauf 3 feuilles.quel code je peux utiliser pour dire (sauf la feuille1(typ),feuille2(education),feuille3(typ2))

    et merci voila mon code:
    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
     
    Sub import()
    Dim b As Variant
    Dim k As Variant
    Dim i As Variant
    Dim n As Variant
    Dim wks As Worksheet
    For b = 1 To Workbooks("fichier1.xls").Sheets.Count
    Workbooks("fichier1.xls").Sheets(b).Activate
    n = Workbooks("fichier1.xls").ActiveSheet.Name
    For Each wks In Workbooks("fichier2.xls").Worksheets
    If wks.Name = n Then
     
    Workbooks("fichier1.xls").Sheets(n).Range("B5:F50").Value = _
    Workbooks("fichier2.xls").Sheets(n).Range("B5:F50").Value
     
    Else
    End If
    Next
    Next b
    Call MsgBox("fini ", vbInformation, "import")
     
    End Sub
    merci pour votre aide.

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    pourquoi pas avec un select case
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For Each wks In Workbooks("fichier2.xls").Worksheets
      select case wks.Name 
          case "typ","education","typ2"
              'on ne fait rien
          case else
              'on copie les données
       end select
    Next

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 78
    Par défaut
    bonjour,
    ces 3 feuilles je veux pas les importer.
    c est a dire je veux importer tout le fichier,mais les 3 feuilles non.

    merci

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    dans le principe, je ferais une copie du classeur puis supprimerais les onglets que je ne veux pas

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu as aussi cette méthode
    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
    Sub LaMacro()
    Dim CL1 As Workbook
    Dim CL2 As Workbook
    Dim LaFeuille as Worksheet
    Dim i As Byte, ListeANePasCopier '(as variant)
    Dim ko As Boolean
    Set CL1 = Workbooks("Classeur1.xls")
    Set CL2 = Workbooks("Classeur2.xls")
    ListeANePasCopier = Array("Feuil1", "Feuil6", "Feuil9")
        For Each LaFeuille In CL1.Worksheets
            For i = 0 To UBound(ListeANePasCopier)
                ko = ko Or LaFeuille.Name = ListeANePasCopier(i)
            Next
            If Not ko Then LaFeuille.Copy After:=CL2.Worksheets(CL2.Worksheets.Count)
            ko = False
        Next
        Set CL1 = Nothing
        Set CL2 = Nothing
    End Sub
    Edit
    Déclarations corrigées
    Dim CL1 As Workbook
    Dim CL2 As Workbook

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 78
    Par défaut
    merci beaucoup ca marche tres bien,mais j ai une autre question s il te plait:
    les classeurs(Calsseur1.xls) parfois change de nom,parfois meme le nom du (classeur2.xls)
    est ce qu il ya une methode pour faire apparaitre un MSGbox pour ecrire le nom du classeur1 ou les informations seront importer.et une autre boite dialogue ou je choisi le file ou il ya les infos qui seront importer?


    merci pour votre aide.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Regarde à InputBox, dans l'aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set CL1 = InputBox("Saisir le nom du fichier à copier ")
    Set CL2 = InputBox("Saisir le nom du fichier où copier ")
    Mais l'aide t'en dira plus que moi
    Ça, si le fichier est ouvert...

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 78
    Par défaut
    merci pour ta reponse.s il te plait j ai une autre question:
    voila j ai dans plusieures feuilles des textbox dedans j ai des des informations et je veux les importer. est ce que ca marche meme avec textbox si oui comment?

    mercii beaucouppppppppppp

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu devrais ouvrir une autre discussion, le sujet est différent.
    Par contre, j'avais raté une question :
    et une autre boite dialogue ou je choisi le file ou il ya les infos qui seront importer?
    Pour ça, tu as une instruction très simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Dialogs.Item(xlDialogOpen).Show
    Ouvre la boîte de dialogue intégrée "Fichier -> Ouvrir". La sélection du fichier y est strictement la même.
    A toutes fins utiles

Discussions similaires

  1. Importer des données XML
    Par Oberown dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/07/2005, 12h59
  2. Importer des données grace a des *.cvs dans MySQL
    Par Mic0001 dans le forum Installation
    Réponses: 3
    Dernier message: 05/01/2005, 19h26
  3. [CR]Importer des données d'une feuille excel
    Par rolan dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/12/2004, 22h32
  4. Réponses: 3
    Dernier message: 13/12/2004, 13h54
  5. Importer des données dans sql server avec DELPHI ???
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2004, 17h22

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