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 :

ordre " select " en vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 17
    Par défaut ordre " select " en vba
    bonjour à toutes et tous ....
    j'aimerais savoir si il est possible d'utiliser des feuilles excel ( dans un classseur), comme des tables ?? autrement dit est il possible de rechercher une valeur dans une feuille via un ordre "select ...." sur la feuille souhaité ?

    Ceci en vba bien évidemment ))

    Merci d'avance

  2. #2
    Membre confirmé Avatar de ippo_master
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Septembre 2007
    Messages : 71
    Par défaut
    Oui c'est possible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub recherche()
     
    Dim valeur_recherche as string
    Dim i as integer
     
    Sheets("Feuil"1).select
    Do while Cells(i,1).value <> ""
    If Cells (i,1).value  = valeur_recherche Then msgbox("Bingo !")
    i = i + 1
    Loop
     
    End sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 17
    Par défaut
    Merci pour ta réponse ippo_master,
    mais je ne voispas d'oredre select ou autrement dit pas de requête dans ton code..
    je voudrais savoir s'il estpossible de travailler sur une feuille excel comme dans une base de données en faisant des requêtes ???

    merci quand même

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Oui, fais des recherches sur le Forum Excel, le sujet a été traité il y'a quelques jours, fais une recherche avec DAO ou ADO.

    Starec

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 17
    Par défaut
    merci je viens de regarder mais je ne trouve pas ce que je demande.
    je vais être plus clair :
    j'ai un classeur avec des onglet contenant des information.
    je voudrais dans une macro VBA, recuperer certaines info s de certains onglet pour les affichier sur un autre onglet, par le biais de requete que je genererai moi meme en fonciton de mes critere.
    est ce possible ??
    si oui comment ??

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Un petit coup d'oiel à ce tuto http://silkyroad.developpez.com/VBA/ClasseursFermes/ de Silkyroad, cela fonctionnera sur ton classeur, malgré le titre.

    Eh oui, c'est possible, par contre lis bien les recommandations de ce tuto sur la structure du fichier.

    Starec

  7. #7
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 17
    Par défaut
    impec.. c'est de la balle
    merci a toi Ô cafeine

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 17
    Par défaut
    heu désolé d'insister, j'ai tester un peu dans tous les sens, pour voir si cela pourrait répondre à mes besoins, et, il reste une petite chose qui me gêne :
    voici 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
    Sub DoCmdRunSQL(ByVal sql As String, ByVal rDest As Range)
     
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
     
        Set db = DAO.OpenDatabase(ActiveWorkbook.FullName, False, False, "Excel 8.0;HDR=YES;")
        Set rs = db.OpenRecordset(sql, DAO.dbOpenSnapshot)
        rDest.CopyFromRecordset rs
        Set rs = Nothing
        Set db = Nothing
     
        'Dim Rst As Recordset
        ' Set Rst = MonObjetData.OpenRecordset("Select * From Client", dbOpenSnapshot)
        'DbOpenSnapshot = Création d'un jeu d'enregistrement en Lecture seule
        'Set Rst = MonObjetData.OpenRecordset("Select * From Client", dbOpenDynaset)
        'DbOpenDynaset  = Création d'un jeu d'enregistrement en Lecture/Ecriture
     
     
    End Sub
     
    Sub test()
     
    Cells.Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select
     
    i = 2
    j = 10
    monselect = " SELECT matricule,periode,compteur1 "
    monfrom = " FROM "
    maplage = "[CPT_ANN_TNC$A1:BE5]"
    monwhere = " WHERE domaine_compteur ='ABSENCES' "
    mafeuille = Chr$(34) & "Feuil1" & Chr$(34)
    macellule = Chr$(34) & "A10" & Chr$(34)
    madestination = " Sheets(" & mafeuille & ").Range(" & macellule & ")"
    marequete = monselect & monfrom & maplage & monwhere  '& Chr$(34) '& madestination
    MsgBox "ma requête : " & Chr(10) & marequete & madestination
     
    'DoCmdRunSQL "SELECT matricule,periode FROM [CPT_ANN_TNC$A1:BE5] WHERE domaine_compteur ='ABSENCES' ", Sheets("Feuil2").Range("A1")
    'DoCmdRunSQL "SELECT matricule,periode FROM [CPT_ANN_TNC$A1:BE5] WHERE domaine_compteur ='ABSENCES' ", Sheets("Feuil" & i).Range("A" & j)
     
     
    DoCmdRunSQL marequete, Sheets("Feuil" & i).Range("A" & j)
     
     
    Sheets("Feuil2").Select
    Range("A1").Select
    MsgBox " fin"
    End Sub
    j'aimerai pouvoir parameter et generer mon second paramatre en utilisant une chaine construite dynamiquement comme "madestination". ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmdRunSQL marequete, madestination
    comment faire ?? est ce possible ??

    merci d'avance.

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    pour l'utilisation de critères dynamiques le mieux est de passer par msquery

    dans le classeur excel nommer les zones de données (une ou plusieurs)
    sauvergarder

    faire données données externes créer une requête

    se laisser guider par l'assistant jusqu'à msquery

    sous msquery ajouter ses paramètes par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    where
    champ1= [param1] and 
    champ2=[param2] ...
    de retour sous excel lier les paramètres à une cellule d'excel

    dès lors toute modification de cette cellule va ajuster le résultat de la requête
    avec des options sympa comme la recopie des formules

Discussions similaires

  1. [VBnet][Access] Requete imbriquee "insert + select"
    Par Fab62_ dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/03/2006, 13h58

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