Мне нужно написать небольшое приложение на VBA для школы. Для этого приложения мне нужно добавить элементы в несколько разных списков, так как для каждого списка это одно и то же, я создал метод с параметрами: лист, с которым я работаю, столбец, с которого я начинаю, и список, который я должен заполнить.
Но когда я выполняю код, у меня возникает ошибка совместимости типа ". Я думаю, что это происходит из строки, где я вызываю мой саб. Но я не нашел способ исправить что с 3 дней.
var 'cellulePrecedente' представляет текст в ячейке, который был прочитан итерацией ранее, содержание может повторяться несколько раз, поэтому я добавляю название курса только тогда, когда оно отличается от предыдущий. Чтобы не писать два раза один и тот же курс.
Я также беру любые советы, так как я начинающий в VBA.
Вот код:
Private Sub UserForm_Initialize()
' On va appeler, pour chaque listbox a remplir la méthode d'initialisation
Call Initialiser_ListBoxs("Cours Ig", "D", ListBox1)
End Sub
Private Sub Initialiser_ListBoxs(Feuille As String, ColonneDepart As String, ListBoxConcernee As ListBox)
Dim CellulePrecedente As String
' On doit fournir la feuille dans laquelle on doit rechercher les éléments, la colonne de depart (si on fait les cours ou les ue
' Il faut aussi fournir la listbox a remplir
Sheets(Feuille).Activate
' On sélectionne la cellule correspondant au point de départ (1er cours/1ere UE)
' La première ligne étant le titre de la colonne
Range(ColonneDepart & "2").Select
CellulePrecedente = ""
' On continue de parcourir tant que tous les cours/UE n'ont pas été lu(e)s
While Range(ColonneDepart & ActiveCell.Row) <> ""
' On ne réécrit pas 2 fois le/la même cours/UE
If CellulePrecedente <> Range(ColonneDepart & ActiveCell.Row) Then
ListBoxConcernee.AddItem Range(ColonneDepart & ActiveCell.Row)
End If
CellulePrecedente = Range(ColonneDepart & ActiveCell.Row)
Range(ColonneDepart & ActiveCell.Row + 1).Select
Wend
End Sub
Спасибо за помощь!
PS: я знаю, что код написан на французском, но я изо всех сил пытался объяснить, как он работает. Я предполагаю, что вы не все понимаете, не стесняйтесь sk любой вопрос!