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

Bases de données Delphi Discussion :

Recherche dans Excel


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 194
    Par défaut Recherche dans Excel
    Bonjour,
    je suis en train de développer une application de gestion de classeurs excel sous delphi (évidement).

    Mon problème c'est quand j'effectue une recherche car je rcherche toutes les lignes qui possédent tout ou partie du champ donné (comme un "colonne LIKE %monchamptexte%" en SQL).

    j'utilise ceci pour faire ma recherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    MonClasseur := ExcelApplication1.Workbooks.Open(ChemFic, False, False,
      EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
      EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);
     
    MaFeuille := MonClasseur.Worksheets[moisChoix] as _worksheet;
     
    MaPlage := MaFeuille.Cells.Find(monchamptexte, EmptyParam, xlValues, xlPart, xlByRows, xlNext, EmptyParam, EmptyParam, EmptyParam);
    voilà donc je voudrais savoir comment faire pour que ma recherche ne se fasse qu'exactement sur monchamptexte (comme un "col=monchamptexte" en SQL)

  2. #2
    Membre expérimenté

    Profil pro
    Personnel
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Par défaut
    Salut,
    Vu dans l'excellente FAQ...
    file:///F:/Prog/Prog%20Download/Docu...elcelrecherche
    @+
    Fabrice

  3. #3
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Citation Envoyé par MFDev
    Salut,
    Vu dans l'excellente FAQ...
    file:///F:/Prog/Prog%20Download/Docu...elcelrecherche
    @+
    Fabrice
    Tu fournis la FAQ depuis ton ordi perso ? C'est sympa
    Voici l'adresse correcte : http://delphi.developpez.com/faq/?pa...elcelrecherche
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  4. #4
    Membre expérimenté

    Profil pro
    Personnel
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Par défaut
    Arf désolé, merci pour la correction...
    @+
    Fabrice

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 194
    Par défaut
    euh les gars vous m'aidez pas beaucoup vous m'avez envoyé vers la page avec laquelle j'ai fait le code que vous avez pu lire (si vous l'avez fait) dans mon premier post !!!

    En fait ce qui serait pas mal c'est de me dire où je pourrais trouver la syntaxe complète des objets comme "ExcelApplication1.Workbooks.Open()" ou bien "MaFeuille.Cells.Find()". Savoir ce que représente chaque paramètres et les valeurs que l'on peut y mettre...

  6. #6
    Membre expérimenté

    Profil pro
    Personnel
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Par défaut
    Désolé, je n'ai pas fait la comparaison...
    Tu as 4 solutions:
    _ voir le code du composant TExcelApplication (voir le source).
    _ te servir de l'aide de VBA sous Excel.
    _ faire des recherches d'exemples de codes.
    _ qu'un autre développeur se soit déjà penché sur le code, et te file la solution.
    Et dés que j'ai un peu de temps je fais des essais pour voir...
    @+
    Fabrice

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 194
    Par défaut
    Citation Envoyé par MFDev
    _te servir de l'aide de VBA sous Excel.
    en même temps si je me suis mis sur delphi c'est parceque l'aide sous VBA est très bien fournie !!!! (Impossible de trouver quoi que se soit... )
    Ou alors j'ai pas la bonne version d'excel (2003)...

  8. #8
    Membre expérimenté

    Profil pro
    Personnel
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Par défaut
    Voilà ce que j'ai réussi à faire:
    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
     
    // fait avec le composant:
    // XlsApp:  TExcelApplication;
     
    procedure TForm1.Button1Click(Sender: TObject);
     var
      XlsWk: _workbook;
      XlsPage: _Worksheet;
      ovWhat, ovAfter, ovLookIn, ovLookAt, ovSearchOrder, ovMatchCase, ovMatchByte: OleVariant;
      vSearchDirection: XlSearchDirection;
      rPlage: ExcelRange;
      sText: string;
     begin
      XlsApp.Connect;  // lance Excel
      XlsApp.Visible[0] := true;
      XlsWk := XlsApp.Workbooks.Open('F:\Prog\_Essai\Classeur1.XLS', False, False, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);  // ouverture XLS
      XlsPage := XlsWk.Worksheets['Feuil1'] as _worksheet;  // page 1
      vSelection := XlsPage.Range['A1','D1'].EntireRow;  // sélection 4 colonnes
      ovWhat := 'Essai';  // le mot cherché
      ovAfter := EmptyParam;  // part ud début dse la sélection
      ovLookIn := xlFormulas;
      ovLookAt := xlPart;  // recherche partielle
      ovSearchOrder := xlByRows;  // par colonne
      vSearchDirection := xlNext;
      ovMatchCase := False;  // pas de respect casse
      ovMatchByte := EmptyParam;
      // lance la recherche
      rPlage := XlsPage.Cells.Find(ovWhat, ovAfter, ovLookIn, ovLookAt, ovSearchOrder, vSearchDirection, ovMatchCase, ovMatchByte);
      // récupère l'adresse dans la page
      //  property Address[RowAbsolute: OleVariant; ColumnAbsolute: OleVariant; ReferenceStyle: XlReferenceStyle; External: OleVariant; RelativeTo: OleVariant]: WideString readonly dispid 236;
      sText := rPlage.Address[true, true, xlA1, false, false];
      // format retour Address = 'R19C2' pour Row19Col2 si xlR1c1
      // format retour Address = '$B$19' pour 'B19' si xA1
      Edit4.Text := sText;
      Edit2.Text := rPlage.Text;	// contenu cellule trouvée
     end;
    Voilà...
    @+
    Fabrice

Discussions similaires

  1. Option recherche dans Excel 2007
    Par jawed dans le forum Excel
    Réponses: 2
    Dernier message: 12/06/2008, 10h44
  2. Techniques de recherche dans Excel
    Par Laura-c dans le forum Excel
    Réponses: 11
    Dernier message: 03/03/2008, 10h29
  3. Recherche "." dans Excel
    Par kenobyalex dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/01/2008, 11h33
  4. formule de recherche dans excel
    Par kroukse dans le forum Excel
    Réponses: 3
    Dernier message: 27/11/2007, 13h41
  5. recherche dans excel
    Par Sand75 dans le forum Macros et VBA Excel
    Réponses: 38
    Dernier message: 06/10/2006, 14h03

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