thierry.bayard
XLDnaute Junior
Bonjour,
Je tente d'améliorer mes codes VBA en supprimant un maximum les "select" et autres "Activate" mais je bloque certaines fois. Je vous donne un extrait de code (le fichier est trop lourd) qui ne fonctionne que si j'ajoute une ligne "Sheets("Activité").select
Sans ce select, la somme demandée en fin de code ne s'effectue pas si la macro est lancée depuis une feuille autre que "Activité". Avez-vous une idée de ce qui bloque ?
Merci d'avance pour votre aide
Thierry
Je tente d'améliorer mes codes VBA en supprimant un maximum les "select" et autres "Activate" mais je bloque certaines fois. Je vous donne un extrait de code (le fichier est trop lourd) qui ne fonctionne que si j'ajoute une ligne "Sheets("Activité").select
Code:
Dim zone As Range
Dim lig As Long
Dim c As Range
Dim i As Long
Dim j As Long
With Sheets("Activité")
If OB_mois = True Then
If Combo_mois1 = "" Then
MsgBox "Merci de compléter le mois choisi"
Exit Sub
End If
.Range("Somme_de").Value = Sheets("Calendrier").Range("K" & Combo_mois1.ListIndex + 2).Value + 5
.Range("Somme_a").Value = .Range("Somme_de").Value
Else
If OB_moiss = True Then
If Combo_mois2 = "" Or Combo_mois3 = "" Then
MsgBox "Merci de compléter le mois de début et le mois de fin."
Exit Sub
End If
If Sheets("Calendrier").Range("K" & Combo_mois2.ListIndex + 2).Value > Sheets("Calendrier").Range("K" & Combo_mois3.ListIndex + 2).Value Then
MsgBox "Le mois de fin doit être postérieur au mois de début."
Exit Sub
End If
.Range("Somme_de").Value = Sheets("Calendrier").Range("K" & Combo_mois2.ListIndex + 2).Value + 5
.Range("Somme_a").Value = Sheets("Calendrier").Range("K" & Combo_mois3.ListIndex + 2).Value + 5
Else
.Range("Somme_de").Value = 7
.Range("Somme_a").Value = 18
End If
End If
Set zone = .Range("AK2:AK" & .Range("D1").End(xlDown).Row)
End With
i = Range("Somme_de").Value
j = Range("Somme_a").Value
For Each c In zone
lig = c.Row
c.Value = Application.WorksheetFunction.Sum(Range(Cells(lig, i), Cells(lig, j)))
Next
Sans ce select, la somme demandée en fin de code ne s'effectue pas si la macro est lancée depuis une feuille autre que "Activité". Avez-vous une idée de ce qui bloque ?
Merci d'avance pour votre aide
Thierry