Probleme if pas pris en compte par la macro

Fermé
szl - 3 juin 2015 à 16:08
 szl - 3 juin 2015 à 17:26
Bonjour j'ai un problème dans mon code, le if m= ... n'est pas pris en compte.
si quelqu'un a une idée du pourquoi merci bien car là je ne comprend pas

Sub Regrouper_données()

Application.DisplayAlerts = False

Dim wb As Workbook
Dim wb1 As Workbook
Dim J As Integer
Dim M As Integer
Dim A As Integer
Dim Y As Integer
Dim NomFichier As String

Set wb = ActiveWorkbook 'Définition du classeur de calcul
Sheets("Données").Select
Range("A7").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.ClearContents

A = Year(CDate(Sheets("Données").Range("B1"))) 'Récupération de l'année de référence AAAA
Y = Sheets("Données").Range("C1").Value 'Récupération de l'année de référence AA

M = 1

'Janvier
If M = 1 Then
NomFichier = "Y:\Données\Données mensuelles\" & A & "-0" & M & ".xlsx"
Set wb1 = Workbooks.Open(NomFichier)

'Copié/collé des données du premier jour du mois
Sheets("010" & M & Y).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Select
Range("A7").Select
ActiveSheet.Paste

'Copié/collé des données de chaque jour à la suite des autres
For J = 2 To 31
wb1.Activate
Sheets(J + 1).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Next J
wb1.Close
M = M + 1
End If

'Février
If M = 2 Then
NomFichier = "Y:\Données\Données mensuelles\" & A & "-0" & M & ".xlsx"
Set wb1 = Workbooks.Open(NomFichier)

Sheets("010" & M & Y).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste

If A Mod 4 <> 0 Then
For J = 2 To 28
wb1.Activate
Sheets(J).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Next J
Else
For J = 2 To 29
wb1.Activate
Sheets(J + 1).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Next J
wb1.Close
End If
M = M + 1
End If

'Mars, Mai, Juillet et Aout
If M = 3 Or 5 Or 7 Or 8 Then
NomFichier = "Y:\Données\Données mensuelles\" & A & "-0" & M & ".xlsx"
Set wb1 = Workbooks.Open(NomFichier)

Sheets("010" & M & Y).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste

For J = 2 To 31
wb1.Activate
Sheets(J).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Next J
wb1.Close
M = M + 1
End If

'Avril, Juin et Septembre
If M = 4 Or 6 Or 9 Then
NomFichier = "Y:\Données\Données mensuelles\" & A & "-0" & M & ".xlsx"
Set wb1 = Workbooks.Open(NomFichier)

Sheets("010" & M & Y).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste

For J = 2 To 30
wb1.Activate
Sheets(J).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Next J
wb1.Close
M = M + 1
End If

'Octobre et Décembre
If M = 10 Or 12 Then
NomFichier = "Y:\Données\Données mensuelles\" & A & "-" & M & ".xlsx"
Set wb1 = Workbooks.Open(NomFichier)

Sheets("01" & M & Y).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste

For J = 2 To 31
wb1.Activate
Sheets(J + 1).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Next J
wb1.Close
M = M + 1
End If

'Novembre
If M = 11 Then
NomFichier = "Y:\Données\Données mensuelles\" & A & "-" & M & ".xlsx"
Set wb1 = Workbooks.Open(NomFichier)

Sheets("01" & M & Y).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Select
Range("A7").Select
ActiveSheet.Paste

For J = 2 To 30
wb1.Activate
Sheets(J + 1).Activate
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Copy
wb.Activate
Sheets("Données").Range("A7").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Next J
wb1.Close
M = M + 1
End If

End Sub
A voir également:

1 réponse

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
3 juin 2015 à 16:28
Bonjour,

'Mars, Mai, Juillet et Aout
pas ca:
If M = 3 Or 5 Or 7 Or 8 Then

mais ceci:
If M = 3 Or M = 5 Or M = 7 Or M = 8 Then


pareil pour la suite
1
merci ça marche
j'ai bloqué trop longtemps sur un truc tout bête...
0