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 :

Copier les résultats d'une recherche dans un autre classeur 2 [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Points : 0
    Points
    0
    Par défaut Copier les résultats d'une recherche dans un autre classeur 2
    Bonjour,
    En fait , je suis un peu débutant en VBA et j'ai besoin de votre aide . Dans un classeur1 , j'ai créer une useform à la quelle je donne une date , une maturité et un taux1 , lorsque j'execute , elle me cherche un taux2 et taux3 qui correspond à ce taux 1 à partir d'un tableau . Mon problème c'est que je veux que ces informations : le taux2, taux3, taux 1 , date, maturité soient copié dans un autre classeur2 dans un tableau dans la feuille "marketing " dans les colonnes H , G , F ,C ,A .Qui ce qui manque pour que les informations peuvent être copiés ? concentrez vous sur la fin du code . ci dessous 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Private Sub CommandButton1_Click() 
    Dim d As Date 
    Dim s As String 
    s = ComboBox1.Text 
    Select Case s 
    Case Is = "52s" 
    Worksheets("52 W").Activate 
    Case Is = "2A" 
    Worksheets("2 ans").Activate 
    Case Is = "5A" 
    Worksheets("5 ans").Activate 
    Case Is = "10A" 
    Worksheets("10 ans").Activate 
    Case Is = "15A" 
    Worksheets("15 ans").Activate 
    Case Is = "20A" 
    Worksheets("20 ans").Activate 
    Case Is = "30A" 
    Worksheets("30 ans").Activate 
    End Select 
    d = TextBox2.Text 
    Range("b1").Value = d 
    Dim l As Integer 
    l = Range(Range("a14"), Range("a14").End(xlDown)).Count 
    Dim aa As Double 
    Dim bb As Double 
    Dim a As Integer 
    Dim b As Integer 
    Dim cost As Boolean 
    cost = False 
    Dim r As String 
    Dim i As Integer 
    For i = 1 To l 
    If Range("a" & 13 + i).Value = r Then 
    aa = Range("c" & 13 + i).Value 
    bb = Range("d" & 13 + i).Value 
    cost = True 
    i = l + 1 
    End If 
    Next 
    If cost = False Then 
    MsgBox ("Verifier le taux1") 
    Else 
    Dim appExcel As Excel.Application 'Application Excel 
    Dim wbExcel As Excel.Workbook 'Classeur Excel 
    Dim wsExcel As Excel.Worksheet 'Feuille Excel 
    'Ouverture de l'application 
    Set appExcel = CreateObject("Excel.Application") 
    'Ouverture d'un fichier Excel 
    Set wbExcel= 
    appExcel.Workbooks.Open("C:\Users\sossso\Desktop\\classeur2.xls") 
    'wsExcel correspond à la première feuille du fichier 
    Set wsExcel = wbExcel.Worksheets("marketing") 
    Dim lo As Integer 
    lo = wsExcel.Range(wsExcel.Range("b6"), wsExcel.Range("b6").End(xlDown)).Count 
    lo = lo + 6 
    wsExcel.Range("a" & lo).Value = d 
    wsExcel.Range("c" & lo).Value = ComboBox1.Text 
    wsExcel.Range("h" & lo).Value = TextBox3.Text 
    wsExcel.Range("f" & lo).Value = aa 
    wsExcel.Range("g" & lo).Value = bb

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("C:\Users\sossso\Desktop\\classeur2.xls")
    'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets("marketing")
    Dim lo As Integer
    lo = wsExcel.Range(wsExcel.Range("b6"), wsExcel.Range("b6").End(xlDown)).Count
    lo = lo + 6
    wsExcel.Range("a" & lo).Value = d
    wsExcel.Range("c" & lo).Value = ComboBox1.Text
    wsExcel.Range("h" & lo).Value = TextBox3.Text
    wsExcel.Range("f" & lo).Value = aa
    wsExcel.Range("g" & lo).Value = bb
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Points : 0
    Points
    0
    Par défaut
    Bonjour ,

    Merci pour votre proposition Daniel . Excusez moi mais je vois pas la différence entre ce que j'ai proposé et le votre , c'est le même code non ? . En fait ,j'ai essayé ça mais c'est la même chose , le problème c'est qu'il manque quelque chose à la fin du code . J'ai essayer de mettre à la fin , cela marche mais lorsque le classeur2 est ouvert il me demande à chaque fois d' enregistrer le classeur 2 avec un autre nom . Moi je veux que ces données soient copiés directement dans les places que j'ai mentionné dans la feuille "marketing" classeur2 à chaque fois que j'utilise ma Useform. Qu'est ce que vous me proposez ? et merci

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    J'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set wbExcel= 
    appExcel.Workbooks.Open("C:\Users\sossso\Desktop\\classeur2.xls")
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wbExcel = appExcel.Workbooks.Open("C:\Users\sossso\Desktop\\classeur2.xls")
    Pour le message à la fermeture, essaie :

    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Points : 0
    Points
    0
    Par défaut
    Malheureusement Daniel . n'a pas marché . les données ne s'enregistre pas dans le fichier classeur 2 . Avez vous une autre idée SVp

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Pardon, j'avais compris que tu ne voulais [B]pas[B] les enregistrer.

    Essaie :

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wbExcel.Close SaveChanges:=True
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Points : 0
    Points
    0
    Par défaut
    En fait monsieur Daniel , la commande que m'avait donné , c'est la même chose que . lorsque j'exécute il m'affiche la fenêtre pour enregistrer le classeur 2 avec un autre nom . alors que moi je veux que les données soient copiés directement dans la classeur 2 sans qu'il me demande d'enregistrer le fichier .Qu'est ce vous me proposez ? merci .

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Alors, c'est que le classeur est ouvert en lecture seule. Ca peut avoir plusieurs causes. Attribut positionné, classeur déjà ouvert, droits insuffisants sur le dossier etc. Essaie de faire la fermeture manuellement pour voir d'où vient le problème.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Points : 0
    Points
    0
    Par défaut
    Normalement lorsque le classeur2 est fermé cela marche et les données sont copiés . le problème lorsque le classeur2 est ouvert aussi , dans ce cas il m'affiche la fenêtre pour enregistrer le classeur2 avec un autre nom . Je sais pas comment régler ce problème ?

  10. #10
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    J'ai du mal à comprendre... Dans quelle application ta macro s'exécute-elle ? Excel ? Alors, pourquoi ouvrir une autre instance d'Excel ? (Pourquoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set appExcel = CreateObject("Excel.Application")
    )
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Points : 0
    Points
    0
    Par défaut
    En fait , le code est dans un classeur1 , dans le quel je cherche des données , et je veux qu'ils soient copiées directement dans un autre classeur 2 avec lequel je travaille et il est tjrs ouvert .

    Concernant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set appExcel = CreateObject("Excel.Application")
    , en fait moi j'ai copier d'un site internet toute cette partie avec laquel on appel un autre fichier excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("C:\Users\sossso\Desktop\\classeur2.xls")
    'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets("marketing")
    .

    Vous avez un peu compris le truc ?

    Est ce que vous voulez dire que c'est pas la peine d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set appExcel = CreateObject("Excel.Application")
    ?

  12. #12
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Si classeur2 est déjà ouvert, mets seulement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Set wbExcel = Workbooks("classeur2.xls")
    'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets("marketing")
    Dim lo As Integer
    lo = wsExcel.Range(wsExcel.Range("b6"), wsExcel.Range("b6").End(xlDown)).Count
    lo = lo + 6
    wsExcel.Range("a" & lo).Value = d
    wsExcel.Range("c" & lo).Value = ComboBox1.Text
    wsExcel.Range("h" & lo).Value = TextBox3.Text
    wsExcel.Range("f" & lo).Value = aa
    wsExcel.Range("g" & lo).Value = bb
    wbExcel.Close True
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Points : 0
    Points
    0
    Par défaut
    Merci bcp monsieur Daniel , le problème est résolu . C'est ce que je cherchais exactement . Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/04/2014, 15h46
  2. [Débutant] probléme d'afficher les résultats d'une recherche dans gridview
    Par Anoos dans le forum ASP.NET
    Réponses: 1
    Dernier message: 06/09/2013, 08h28
  3. [XL-2003] Afficher les résultats d'une recherche dans une listbox
    Par sword56 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/03/2012, 20h24
  4. Afficher les résultats d'une recherche dans un TREEVIEW
    Par buddyMick dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/09/2010, 22h53
  5. Réponses: 7
    Dernier message: 21/09/2006, 08h44

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