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

Soyez le premier à donner votre avis sur cette source.

Vue 38 496 fois - Téléchargée 2 937 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
-
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
-
ciao
fdiedler2000
Messages postés
383
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
1 décembre 2008
-
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
-
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
-
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.