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.
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.