Bonjour
Y a quelques semaines de ca, (avec bcp d'aide venant de ce forum) j'ai pu réalisé une macro qui faisait ce que je voulais comme je le voulais.
Seulement, maintenant que je veut la mettre en place pour qu'elle soit utilisée, elle met un temps fou à s'executer! Je n'est pourtant pas modifié grand chose (quelque noms, et numeros de cellules), et avant mes deux semaines de vacances il me semblait qu'elle éarchait normalement.
Je met le code si dessous, dans l'espoir que je vous puissiez reperer une coquille qui la ralentirais (car même sur une feuille vide, son éxécution met 30 à 40sec!)
	
	
	
	
	
		
	
		
			
		
		
	
				
			Y a quelques semaines de ca, (avec bcp d'aide venant de ce forum) j'ai pu réalisé une macro qui faisait ce que je voulais comme je le voulais.
Seulement, maintenant que je veut la mettre en place pour qu'elle soit utilisée, elle met un temps fou à s'executer! Je n'est pourtant pas modifié grand chose (quelque noms, et numeros de cellules), et avant mes deux semaines de vacances il me semblait qu'elle éarchait normalement.
Je met le code si dessous, dans l'espoir que je vous puissiez reperer une coquille qui la ralentirais (car même sur une feuille vide, son éxécution met 30 à 40sec!)
		Code:
	
	
	Private Sub CommandButton1_Click()
Dim Cell As Range
Dim flag As Boolean
Dim myarray(15) As String
feuille = ActiveSheet.Name
Application.ScreenUpdating = False
For n = 8 To Range("B65536").End(xlUp).Row Step 2
If n = 14 Then n = 15
If n = 23 Then n = 26
If n = 30 Then n = 31
If n = 41 Then n = 42
Workbooks.Open "G:\chemin d'acces\fiche remplacement vierge.xls"
Workbooks("2007team1.xls").Activate
Set plage_date = Range("D" & n & ":AG" & n)
i = 6
   For Each Cell In plage_date
    If Cell.Interior.ColorIndex = 6 Or Cell.Interior.ColorIndex = 38 Then
    Application.ScreenUpdating = True
    Application.Calculation = xlManual
    If Not Cell.Comment Is Nothing Then Cell.Comment.Visible = True
    flag = True
    
        
i = i + 1
    nom = Range("B" & n)
    prenom = Range("B" & n + 1)
    heure = Cell.Value
    jour = Cells(6, Cell.Column)
      
     Application.ScreenUpdating = False
         Select Case feuille
         Case "JAN"
         mois = "Janvier"
         ....
         Case "DEZ"
         mois = "Décembre"
         End Select
         
    Workbooks("fiche remplacement vierge.xls").Worksheets("sheet1").Range("G3") = mois
    Workbooks("fiche remplacement vierge.xls").Worksheets("sheet1").Cells(i, 2) = heure
    Workbooks("fiche remplacement vierge.xls").Worksheets("sheet1").Cells(i, 4) = jour & " " & mois
    remplace = InputBox("Entrez le nom de la personne remplacée le " & jour & " " & mois & " par " & prenom & " " & nom, "Remplacement", lastname, 9960, 330)
    Workbooks("fiche remplacement vierge.xls").Worksheets("sheet1").Cells(i, 5) = remplace
    lastname = remplace
    If Cell.Interior.ColorIndex = 38 Then
    poste = "Neutra"
    Else
    poste = InputBox("Entrez le poste", "Remplacement", lastposte, 9960, 330)
    lastposte = poste
    End If
    Workbooks("fiche remplacement vierge.xls").Worksheets("sheet1").Cells(i, 6) = poste
    If Not Cell.Comment Is Nothing Then Cell.Comment.Visible = False
 End If
Next Cell
If flag Then
Workbooks("fiche remplacement vierge.xls").Sheets("sheet1").Range("E4") = prenom & " " & nom
Workbooks("fiche remplacement vierge.xls").Sheets("sheet1").Range("E4").Borders.LineStyle = xLineStyleNone
Workbooks("fiche remplacement vierge.xls").Sheets("sheet1").Range("E30") = "Fait le " & Date
Workbooks("fiche remplacement vierge.xls").Sheets("sheet1").Range("E30").Font.Bold = True
Filename = "remplacement " & mois & " " & nom & ".xls"
Workbooks("fiche remplacement vierge.xls").SaveAs "C:\Documents and Settings\" & Application.UserName & "\My Documents\Remplacement" & Filename
myarray(j) = Filename
j = j + 1
End If
flag = False
Next n
Workbooks("fiche remplacement vierge.xls").Close
Application.EnableEvents = True
reponse = MsgBox("Voulez-vous imprimer les fiches de remplacements?", vbYesNo + vbQuestion, "Impression Fiche de Remplacement")
If reponse = 6 Then
    j = 0
    Do Until myarray(j) = ""
    Workbooks(myarray(j)).PrintOut
    j = j + 1
    Loop
End If
Line1:
Application.Calculation = xlAutomatic
End Sub