Simplification programme VBA

ascarter

XLDnaute Junior
Bonjour le forum, je n'arrive pas à simplifier ce programme ci dessous:

If Cells(2, 2) <> True Then
Cells(55, 4).Value = ""
Cells(55, 5).Value = ""
Cells(55, 6).Value = ""
Cells(55, 7).Value = ""
Cells(55, 8).Value = ""
Cells(55, 9).Value = ""
Else
Cells(55, 4).Value = Sheets("Données CR M1").Cells(2, 3).Value
Cells(55, 5).Value = Sheets("Données CR M1").Cells(2, 4).Value
Cells(55, 6).Value = Sheets("Données CR M1").Cells(2, 5).Value
Cells(55, 7).Value = Sheets("Données CR M1").Cells(2, 6).Value
Cells(55, 8).Value = Sheets("Données CR M1").Cells(2, 7).Value
Cells(55, 9).Value = Sheets("Données CR M1").Cells(2, 8).Value
End If

If Cells(3, 2) <> True Then
Cells(56, 4).Value = ""
Cells(56, 5).Value = ""
Cells(56, 6).Value = ""
Cells(56, 7).Value = ""
Cells(56, 8).Value = ""
Cells(56, 9).Value = ""
Else
Cells(56, 4).Value = Sheets("Données CR M1").Cells(3, 3).Value
Cells(56, 5).Value = Sheets("Données CR M1").Cells(3, 4).Value
Cells(56, 6).Value = Sheets("Données CR M1").Cells(3, 5).Value
Cells(56, 7).Value = Sheets("Données CR M1").Cells(3, 6).Value
Cells(56, 8).Value = Sheets("Données CR M1").Cells(3, 7).Value
Cells(56, 9).Value = Sheets("Données CR M1").Cells(3, 8).Value
End If

If Cells(4, 2) <> True Then
Cells(57, 4).Value = ""
Cells(57, 5).Value = ""
Cells(57, 6).Value = ""
Cells(57, 7).Value = ""
Cells(57, 8).Value = ""
Cells(57, 9).Value = ""
Else
Cells(57, 4).Value = Sheets("Données CR M1").Cells(4, 3).Value
Cells(57, 5).Value = Sheets("Données CR M1").Cells(4, 4).Value
Cells(57, 6).Value = Sheets("Données CR M1").Cells(4, 5).Value
Cells(57, 7).Value = Sheets("Données CR M1").Cells(4, 6).Value
Cells(57, 8).Value = Sheets("Données CR M1").Cells(4, 7).Value
Cells(57, 9).Value = Sheets("Données CR M1").Cells(4, 8).Value
End If

Sachant que i va de 2 à 47 et j de 55 à 100 j'ai écrit ceci mais sa ne marche pas:

For i = 2 To 47
For j = 55 To 100
If Cells(i, 2) <> True Then
Cells(j, 4).Value = ""
Cells(j, 5).Value = ""
Cells(j, 6).Value = ""
Cells(j, 7).Value = ""
Cells(j, 8).Value = ""
Cells(j, 9).Value = ""
j = j + 1
i = i + 1
Else
Cells(j, 4).Value = Sheets("Données CR M1").Cells(i, 3).Value
Cells(j, 5).Value = Sheets("Données CR M1").Cells(i, 4).Value
Cells(j, 6).Value = Sheets("Données CR M1").Cells(i, 5).Value
Cells(j, 7).Value = Sheets("Données CR M1").Cells(i, 6).Value
Cells(j, 8).Value = Sheets("Données CR M1").Cells(i, 7).Value
Cells(j, 9).Value = Sheets("Données CR M1").Cells(i, 8).Value
j = j + 1
i = i + 1
End If
Next j
Next i

Si vous pouvez m'aider...Merci d'avance pour vos réponses.
 

mutzik

XLDnaute Barbatruc
Re : Simplification programme VBA

bonjour
tu peux déja simplifier, au lieu d'utiliser cells(ligne, col)
utiliser range(...)
par ex
Cells(55, 4).Value = ""
Cells(55, 5).Value = ""
Cells(55, 6).Value = ""
Cells(55, 7).Value = ""
Cells(55, 8).Value = ""
Cells(55, 9).Value = ""
peut se remplacer par range("D55:I55")=""
D = colonne 4, I = colonne 9
maintenant, il vaut peut-être mieux utiliser
range("D55:I55").clearcontents qui efface le contenu de la cellule sans en changer le format (si c'est un format date ou autre...
 

mutzik

XLDnaute Barbatruc
Re : Simplification programme VBA

re,
Cells(57, 4).Value = Sheets("Données CR M1").Cells(4, 3).Value
Cells(57, 5).Value = Sheets("Données CR M1").Cells(4, 4).Value
Cells(57, 6).Value = Sheets("Données CR M1").Cells(4, 5).Value
Cells(57, 7).Value = Sheets("Données CR M1").Cells(4, 6).Value
Cells(57, 8).Value = Sheets("Données CR M1").Cells(4, 7).Value
Cells(57, 9).Value = Sheets("Données CR M1").Cells(4, 8).Value

peut se remplacer par
range("C4:H4").copy destination=:range("D57")
 

Efgé

XLDnaute Barbatruc
Re : Simplification programme VBA

Bonjour ascarter, Bonjour mutzik :) _ sans fichier exemple _ A tester si j'ai bien compris.... Dans le Module1_ Cordialement _ Edit _ changement fichier (oublié le Next j)
 

Pièces jointes

  • ascarter (1).xls
    13.5 KB · Affichages: 40
Dernière édition:

Statistiques des forums

Discussions
312 538
Messages
2 089 396
Membres
104 158
dernier inscrit
obad