Bonsoir,
Je suis débutant en VBA, mais j'ai tout de même réussi à créer une petite macro ajoutant un nouvel enregistrement dans ma base de donnée, ainsi qu'une nouvelle autorité à une liste déroulante. Le problème est que mon code est très long, s'exécute lentement, et est par conséquent sujet à quelques bugs aléatoires.
En soi cela n'est pas très grave, mais je suppose qu'il doit être possible de simplifier et de sécuriser ce code. Malheureusement je n'ai pas les compétences nécessaire pour le faire ...
Quelqu'un peut-il m'aider ?
Voici le code de ma macro (il est constitué de codes générés automatiquement par Excel, de codes tapés à la main, et de codes trouvés sur ce forum) :
Merci d'avance !
Je suis débutant en VBA, mais j'ai tout de même réussi à créer une petite macro ajoutant un nouvel enregistrement dans ma base de donnée, ainsi qu'une nouvelle autorité à une liste déroulante. Le problème est que mon code est très long, s'exécute lentement, et est par conséquent sujet à quelques bugs aléatoires.
En soi cela n'est pas très grave, mais je suppose qu'il doit être possible de simplifier et de sécuriser ce code. Malheureusement je n'ai pas les compétences nécessaire pour le faire ...
Quelqu'un peut-il m'aider ?
Voici le code de ma macro (il est constitué de codes générés automatiquement par Excel, de codes tapés à la main, et de codes trouvés sur ce forum) :
Code:
Sub Nouveau()
'
' Nouveau Macro
'
'
Sheets("Liste films").Select
Rows("3:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("autorités").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Sheets("Nouveau").Select
Range("A2:J2").Select
Selection.Copy
Sheets("Liste films").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Nouveau").Select
Range("C8").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("C9").Select
Selection.Copy
Sheets("autorités").Select
Range("A2").Select
ActiveSheet.Paste
Sheets("Nouveau").Select
Range("C9").Select
Selection.ClearContents
Range("C10").Select
Selection.ClearContents
Range("C12").Select
Selection.ClearContents
Range("C13").Select
Selection.ClearContents
Range("C14").Select
Selection.ClearContents
Range("F13").Select
Selection.ClearContents
Range("F12").Select
Selection.ClearContents
Range("F8").Select
Selection.ClearContents
Range("C8").Select
Sheets("autorités").Select
Range("A2:A526").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A2").Select
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select
While ActiveCell <> ""
If ActiveCell = donnee1 Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select
Else
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select
End If
Wend
Sheets("liste films").Select
Rows("3:3").Select
End Sub
Merci d'avance !