Bonjour,
J’ai développé un petit script VBA sur excel. Cependant, je ne travaille plus que sur Libreoffice. Le fichier enregistré sous excel est lu mais ne fonctionne pas sous libreoffice (toutes les fonctions du scripts ne fonctionnent pas).
Je souhaiterai donc écrire mon script mais dans un macro au standard libre office car j’imagine que le langage diffère cependant étant novice je ne sais pas du tout ce qu’il faudrait que je change.
Mon script consiste à créer une liste déroulante dans laquelle je peux venir sélectionner une ou plusieurs valeurs. Si plusieurs valeurs sont sélectionnées, elles se mettent les unes à la suite des autres, séparé par un virgule.
J’ai testé plusieurs choses mais sans résultats avec des erreurs dont celle-ci : Erreur d’exécution BASIC.'91’Variable d’objet non définie. Et cela me surligne cette ligne notamment : Application.EnableEvents = True
J’ai fouilleé un peu le forum mais je n’arrive pas à comprendre quelle alternative je dois utiliser. Et je suis vraiment bloquée. Est-ce que quelqu’un pourrait me donner une piste s’il vous plait ?
Je mets plus bas une copie mon script VBA .
Merci infiniment !
Option VBASupport 1
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Oldvalue As String
Dim Newvalue As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Not Intersect(Target, Union(Range("J2:J" & Rows.Count), Range("H2:H" & Rows.Count), Range("F2:F" & Rows.Count), Range("L2:X" & Rows.Count))) Is Nothing Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
If InStr(1, Oldvalue, Newvalue & ", ") > 0 Then
Target.Value = Replace(Oldvalue, Newvalue & ", ", "")
ElseIf InStr(1, Oldvalue, ", " & Newvalue) > 0 Then
Target.Value = Replace(Oldvalue, ", " & Newvalue, "")
ElseIf InStr(1, Oldvalue, Newvalue) = 0 Then
Target.Value = Oldvalue & ", " & Newvalue
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub