bonjour,
j'ai un soucis avec une partie d'une macro, elle fonctionne en mode debogage (F8) mais pas en auto.
La partie qui me pose problème est en rouge.
ce qu'il se passe, en mode debogage:
je compare la valeur de 2 cellules (n° du mois en cours et un index de 1 à 12)
si cette comparaison est vrai, je copie le contenu d'une cellule en face de l'index du mois en cours et uniquement pour ce mois.
en automatique, la cellule est copie en face de chaque index et ne ce soucis plus du mois en cours.
qq'un aurait une explication, parce que là je sèche lamentablement.![Confused :confused: :confused:](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
merci de votre aide
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 22/12/2009 par
'
Application.ScreenUpdating = False
Dim i As Byte
Dim J As Byte
Dim K As Byte
For i = 2 To Worksheets.Count
With Sheets(i)
If Range("AR9") > Range("AR3") Then
Range("AU3:AV33").Select
Selection.ClearContents
Range("AZ3:AZ33").Select
Selection.ClearContents
End If
.Range("AR9").Value = .Range("AR3").Value
For J = 1 To 31
If .Range("AR7") = 1 Then
If .Range("AR3").Value - 3 = .Range("AY" & 2 + J).Value Then
.Range("AU" & 2 + J).Value = .Range("AQ3").Value - 2
.Range("AV" & 2 + J).Value = .Range("AR5").Value
.Range("AZ" & 2 + J).Value = .Range("AR6").Value
Else
If .Range("AR3").Value - 2 = .Range("AY" & 2 + J).Value Then
.Range("AU" & 2 + J).Value = .Range("AQ3").Value - 1
.Range("AV" & 2 + J).Value = .Range("AR5").Value
.Range("AZ" & 2 + J).Value = .Range("AR6").Value
Else
If .Range("AR3").Value - 1 = .Range("AY" & 2 + J).Value Then
.Range("AU" & 2 + J).Value = .Range("AQ3").Value
.Range("AV" & 2 + J).Value = .Range("AR5").Value
.Range("AZ" & 2 + J).Value = .Range("AR6").Value
End If
End If
End If
Else
If .Range("AR3").Value - 1 = .Range("AY" & 2 + J).Value Then
.Range("AU" & 2 + J).Value = .Range("AQ3").Value
.Range("AV" & 2 + J).Value = .Range("AR5").Value
.Range("AZ" & 2 + J).Value = .Range("AR6").Value
End If
End If
Next
For K = 1 To 12
If Range("AR11").Value = Range("BB" & 2 + K).Value Then
.Range("BC" & 2 + K).Value = .Range("AW35").Value
End If
Next
End With
Next i
Sheets("SAISIE").Select
Range("A1").Select
End Sub
j'ai un soucis avec une partie d'une macro, elle fonctionne en mode debogage (F8) mais pas en auto.
La partie qui me pose problème est en rouge.
ce qu'il se passe, en mode debogage:
je compare la valeur de 2 cellules (n° du mois en cours et un index de 1 à 12)
si cette comparaison est vrai, je copie le contenu d'une cellule en face de l'index du mois en cours et uniquement pour ce mois.
en automatique, la cellule est copie en face de chaque index et ne ce soucis plus du mois en cours.
qq'un aurait une explication, parce que là je sèche lamentablement.
merci de votre aide
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 22/12/2009 par
'
Application.ScreenUpdating = False
Dim i As Byte
Dim J As Byte
Dim K As Byte
For i = 2 To Worksheets.Count
With Sheets(i)
If Range("AR9") > Range("AR3") Then
Range("AU3:AV33").Select
Selection.ClearContents
Range("AZ3:AZ33").Select
Selection.ClearContents
End If
.Range("AR9").Value = .Range("AR3").Value
For J = 1 To 31
If .Range("AR7") = 1 Then
If .Range("AR3").Value - 3 = .Range("AY" & 2 + J).Value Then
.Range("AU" & 2 + J).Value = .Range("AQ3").Value - 2
.Range("AV" & 2 + J).Value = .Range("AR5").Value
.Range("AZ" & 2 + J).Value = .Range("AR6").Value
Else
If .Range("AR3").Value - 2 = .Range("AY" & 2 + J).Value Then
.Range("AU" & 2 + J).Value = .Range("AQ3").Value - 1
.Range("AV" & 2 + J).Value = .Range("AR5").Value
.Range("AZ" & 2 + J).Value = .Range("AR6").Value
Else
If .Range("AR3").Value - 1 = .Range("AY" & 2 + J).Value Then
.Range("AU" & 2 + J).Value = .Range("AQ3").Value
.Range("AV" & 2 + J).Value = .Range("AR5").Value
.Range("AZ" & 2 + J).Value = .Range("AR6").Value
End If
End If
End If
Else
If .Range("AR3").Value - 1 = .Range("AY" & 2 + J).Value Then
.Range("AU" & 2 + J).Value = .Range("AQ3").Value
.Range("AV" & 2 + J).Value = .Range("AR5").Value
.Range("AZ" & 2 + J).Value = .Range("AR6").Value
End If
End If
Next
For K = 1 To 12
If Range("AR11").Value = Range("BB" & 2 + K).Value Then
.Range("BC" & 2 + K).Value = .Range("AW35").Value
End If
Next
End With
Next i
Sheets("SAISIE").Select
Range("A1").Select
End Sub