(vb 2005) charger un combobox à partir d'excel

0/5 (5 avis)

Vue 38 861 fois - Téléchargée 3 083 fois

Description

Ce code montre comment charger un Combobox à partir de cellules Excel (aussi comment y ajouter une nouvelle valeur).
Je le poste surtout pour compléter le peu des sources pour VB 2005.

Source / Exemple :


Imports System
Imports System.Data
Imports Excel

Public Class Form1
    Inherits System.Windows.Forms.Form

    Dim Appli As New Excel.Application

    '       Déclarations pour classeur Excel
    Dim Classeur As Excel.Workbook
    Dim Feuille As Excel.Worksheet
    Dim NomClasseur As String = "V:\Préfabriqué\TestVB.xls"

    Dim i As Short               '   Compteur
    Dim VarTrav As String        '   Variable de travail

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        OuvrirClasseur()

        '       Chargement du Combobox
        i = 1
        Do Until Feuille.Cells(i, 2).value2 Is Nothing
            '       Noter qu'il ne peut pas y avoir de lignes vides
            VarTrav = Feuille.Cells(i, 2).value2
            ComboBox1.Items.Add(VarTrav)
            i = i + 1
        Loop

        FermerClasseur()

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        '       Ajout dans le Combobox
        VarTrav = TextBox1.Text
        ComboBox1.Items.Add(VarTrav)

        OuvrirClasseur()

        '       Recherche du prochain emplacement libre
        i = 1
        Do Until Feuille.Cells(i, 2).value2 Is Nothing
            '       Recherche de doublons
            If VarTrav = Feuille.Cells(i, 2).value2 Then
                MsgBox("*****  CLIENT EXISTE DÉJÀ, PAS D'AJOUT  *****")
                FermerClasseur()
                Exit Sub
            End If
            i = i + 1
        Loop
        Feuille.Cells(i, 2) = VarTrav
        '       Pas besoin de tri dans le classeur avec la propriété
        '       du Combobox : sorted = true

        '       Sauvegarde du classeur
        Classeur.Save()
        FermerClasseur()

    End Sub

    Private Sub OuvrirClasseur()

        Appli.Visible = False           '   Application visible
        Appli.DisplayAlerts = False     '   Inactivation des alertes

        '       Ouverture du classeur
        Try
            Appli.Workbooks.Open(NomClasseur)
        Catch ex As Exception
            MsgBox("*****  IMPOSSIBLE D'OUVRIR LE FICHIER EXCEL  *****")
        End Try

        '       Initialisation Classeur et Feuille Excel
        Classeur = CType(Appli.Workbooks(1), Excel.Workbook)
        Feuille = CType(Classeur.Worksheets("Saisie"), Excel.Worksheet)

    End Sub

    Private Sub FermerClasseur()

        '       Fermeture du classeur
        Try
            Appli.Visible = True
            Appli.DisplayAlerts = True
            Appli.Quit()
        Catch ex As Exception
        End Try

    End Sub
End Class

Conclusion :


Notez que si vous ouvrez un classeur par VB et que vous le fermez manuellement (sans passer par l'appli), vous risquez de le garder toujours actif dans les processus du gestionnaire de tâches.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_isokar Messages postés 11 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 24 mars 2010
29 oct. 2007 à 08:43
bon je doit vraiment etre nul car quand je lance ton projet, il me met des erreur partout.
j'ai éssayé de prendre juste la partie qui m'intéresse et il me dit que je ne peux pas faire de new avec excel.application est-ce normal?
azerty_tunisie Messages postés 1 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 30 août 2007
30 août 2007 à 15:01
ciao
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
26 nov. 2006 à 12:29
salut j'ai une erreur sur cette ligne qu'estc e que je dois faire ?
Feuille = CType(Classeur.Worksheets("Saisie"), Excel.Worksheet)
Merci
Lordthias Messages postés 15 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 9 mai 2007
16 mai 2006 à 15:27
salut,
enfin un code simple et trés utile...
Merci
debutante84 Messages postés 7 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 20 juillet 2009
10 mai 2006 à 02:30
salut
je debute en vb.net et je trouve que ton code est tres interessant

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.