fonctionnement macro

reivax95

XLDnaute Nouveau
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:

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
 

ROGER2327

XLDnaute Barbatruc
Re : fonctionnement macro

Bonjour reivax95
Difficile de répondre hors contexte. Par exemple pourquoi a-t-on
Code:
[B][COLOR="DarkSlateGray"]If Range("AR11").Value = Range("BB" & 2 + K).Value Then[/COLOR][/B]
qui fait référence à la feuille active, plutôt que
Code:
[B][COLOR="DarkSlateGray"]If [COLOR="Red"].[/COLOR]Range("AR11").Value = .Range("BB" & 2 + K).Value Then[/COLOR][/B]
qui fait référence à la feuille d'index i ?​
ROGER2327
#2543
 

jp14

XLDnaute Barbatruc
Re : fonctionnement macro

Bonjour
Salut ROGER2327

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.


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
Sans les valeurs il est difficile de comprendre le problème.

Une remarque :la cellule AR11 est-elle dans la même feuille que AW35, si oui il faut rajouter les points devant range.

JP
 

CBernardT

XLDnaute Barbatruc
Re : fonctionnement macro

Bonjour reivax95, ROGER2327, jp14 et le forum,


Simplement des points manquant devant les Range pour les lier avec la feuille (i)

Quelques modifs pour simplifier, à voir :

Sub Macro1()
Application.ScreenUpdating = False

Dim i As Byte, J As Byte, K As Byte

For i = 2 To Sheets.Count
With Sheets(i)

If .Range("AR9") > .Range("AR3") Then
.Range("AU3:AV33").ClearContents
.Range("AZ3:AZ33").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

ElseIf .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

ElseIf .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

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 J

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 K
End With

Next i

Sheets("SAISIE").Select
Range("A1").Select
End Sub
 

Statistiques des forums

Discussions
312 775
Messages
2 092 009
Membres
105 148
dernier inscrit
gegre