Accélérer l'exécution d'un code VBA

Au temps pour moi Dan, j'ai réfléchi et compris votre code

Je laisse le code final si ça peut servir à quelqu'un, merci infiniment pour votre aide

Private Sub ValiderBDD_Click()
'Copie cases dans la BDD
Dim i As Byte
Dim ligne As Integer
Dim Annee As Range, Plage As Range, Semaine As Range

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

'debut ajout
Set Plage = Range("B15:F19")
Set Semaine = Range("C11")
Set Annee = Range("E11")
Set typ = Range("C2")

'TEST SI PLAGE VIDE
If Application.CountA(Plage) = 0 Or Application.CountA(Semaine) = 0 Or Application.CountA(Annee) = 0 Or Application.CountA(ope) = 0 Or Application.CountA(typ) = 0 Then
MsgBox ("Veuillez renseigner au moins une OF, date, année, opérateur, type et semaine")
Else:
    For Each C In Worksheets("Interface").Range("B15:F19").Cells

       If Not IsEmpty(C.Value) Then 'Si Numéro d'OF non vide alors

           For i = 3 To 5
               ligne = Sheets("BDD").Range("A" & Sheets("BDD").Rows.Count).End(xlUp).Row + 1
               If Not IsEmpty(Cells(23, i)) Then
                   With Worksheets("BDD")
                       .Range("A" & ligne) = Annee
                       .Range("B" & ligne) = Semaine
                       .Range("C" & ligne) = C.Value
                       Worksheets("Interface").Range(Cells(23, i), Cells(29, i)).Copy 'ajoute une ligne en plus
                       .Range("D" & ligne).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

                   End With
               End If
           Next i
       End If
    Next C
    MsgBox ("Données ajoutés avec succès")
End If 'ajout

'--------AMELIIORATION FIN
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

Re

Désolé j'ai du m'absenter. Mais je réponds tout de même à vos questions

il me manque juste deux données à rajouter à la base de données et la vérif que aucune case en jaune ne soit pas vide avant exécution

Désolé je n'avais pas vu la colonne J à compléter dans la feuille BDD. Donc c'est normal. Mais vous avez bien corrigé en changeant cells(28,i) par Cells(29, i)

Pour la vérification de vide, c'est ok je saurais faire, par contre pour rajouter les 2 champs supplémentaires dans la BDD j'ai une idée, suffirait-il de changer le i à 7 ?

Non surtout pas la définition de i = 3 to 5 correspond aux colonnes C à E dans la ligne 23. Donc logique que cela mettre le souc dans BDD

Cordialement

Pas de soucis, au contraire merci pour votre temps ! :)

Rechercher des sujets similaires à "accelerer execution code vba"