Bonjour
J'essaie d'optimiser mes codes et donc j'entreprends de retirer les .Activate qui imposent des changements "d'écran".
Je bute sur un .Activate que je ne peux pas retirer, sinon "Erreur d'éxécution 1004".
A priori c'est cette ligne qui est en cause :
Un expert du forum peut-il m'apporter une explication ? Et pourquoi pas une astuce pour contourner cette contrainte ?
D'avance Merci
J'essaie d'optimiser mes codes et donc j'entreprends de retirer les .Activate qui imposent des changements "d'écran".
Je bute sur un .Activate que je ne peux pas retirer, sinon "Erreur d'éxécution 1004".
A priori c'est cette ligne qui est en cause :
Code:
Set Plage = Sheets("NATALITE MFI").Range(Range("C6"), Range("C6").End(xlToRight))
Un expert du forum peut-il m'apporter une explication ? Et pourquoi pas une astuce pour contourner cette contrainte ?
D'avance Merci
Code:
Sub NataliteMFI()
' Calcul la natalité MFI
Dim i As Long, DerniereLigne As Long
Dim NbCol As Long
Dim j As Long
Dim c As Range
'---
ThisWorkbook.Activate
Sheets("NATALITE MFI").Activate
Sheets("NATALITE MFI").Outline.ShowLevels RowLevels:=2
Cells.Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
NbCol = [A6].CurrentRegion.Columns.Count
DerniereLigne = Sheets("NATALITE MFI").Range("B65536").End(xlUp).Row
For i = 7 To DerniereLigne
For j& = 2 To NbCol
Set c = Sheets("NATALITE MFI").Cells(i, j)
If c <> "" Then
c.Interior.ColorIndex = 6
Exit For
End If
Next j
Next i
Sheets("NATALITE MFI").Outline.ShowLevels RowLevels:=1
Set Plage = Sheets("NATALITE MFI").Range(Range("C6"), Range("C6").End(xlToRight))
For Each c In Plage
If c.Value <> "" Then
c.Offset(2493, 0).Value = c.Offset(2496, 0).Value & "-" & c.Value
c.Offset(2494, -1).Copy
c.Offset(2494, 0).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Next
End Sub