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

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

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.