Utilisation et automatisation des codes à barres avec VBA dans Excel
Vous pouvez utiliser VisualBasic for Applications (VBA) pour résoudre de nombreux problèmes dans Excel. Nous allons vous montrer comment intégrer, utiliser et supprimer le contrôle ActiveBarcode avec VBA:
Intégrer le contrôle ActiveBarcode dans une feuille :
Dans cet exemple, un contrôle de code-barres sera placé directement au-dessus d'une cellule. Le code-barres semble alors se trouver à l'intérieur d'une cellule.
Nous commençons par lire la taille des cellules :
CurrentCell = "C3" MyHeight = Range(CurrentCell).Height MyWidth = Range(CurrentCell).Width MyTop = Range(CurrentCell).Top MyLeft = Range(CurrentCell).LeftVeuillez noter qu'une cellule doit avoir une taille minimale pour que le code-barres puisse s'y insérer. Si la cellule est trop petite, une erreur de taille sera affichée. Nous redimensionnons donc la hauteur de la cellule à 30 pixels :
' Enlarge the cell height to 30 pixels Range(CurrentCell).RowHeight = 30La fonction suivante créera le contrôle de code-barres directement au-dessus de la cellule :
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _ DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_ Left:=MyLeft + 4).SelectVous pouvez lier directement l'objet code-barres à une cellule :
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"Pour faciliter l'accès au contrôle, nous stockons le nom du contrôle dans la variable MyBarcode :
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).NameVous pouvez maintenant utiliser les properties et methods de l'objet code-barres comme vous le souhaitez :
' set properties ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8 ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128 ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")Si vous n'avez plus besoin du contrôle, vous pouvez le supprimer de la feuille :
ActiveSheet.OLEObjects(MyBarcode).DeleteConseil : s'il est nécessaire que Windows traite les événements à venir (souvent appelés "KeepWindowsAlive") dans une macro, vous pouvez le forcer en utilisant la fonction VBA suivante :
DoEventsCela peut s'avérer nécessaire, par exemple si le Contrôleur doit se redessiner.