Simplifier cette macro

  • Initiateur de la discussion Domi_d
  • Date de début
D

Domi_d

Guest
Bonjour,
Comment simplifier cette macro svp ?

If Not Intersect(Target, Range('C158')) Is Nothing Then
Range('C158') = 3
Range('C159') = Empty
Range('F159') = Range('B158')
ElseIf Not Intersect(Target, Range('C159')) Is Nothing Then
Range('C159') = 3
Range('C158') = Empty
Range('F159') = Range('B159')
End If
If Not Intersect(Target, Range('C162')) Is Nothing Then
Range('C162') = 3
Range('C163') = Empty
Range('F161') = Range('B162')
ElseIf Not Intersect(Target, Range('C163')) Is Nothing Then
Range('C163') = 3
Range('C162') = Empty
Range('F161') = Range('B163')
End If
If Not Intersect(Target, Range('C166')) Is Nothing Then
Range('C166') = 3
Range('C167') = Empty
Range('F167') = Range('B166')
ElseIf Not Intersect(Target, Range('C167')) Is Nothing Then
Range('C167') = 3
Range('C166') = Empty
Range('F167') = Range('B167')
End If
If Not Intersect(Target, Range('C170')) Is Nothing Then
Range('C170') = 3
Range('C171') = Empty
Range('F169') = Range('B170')
ElseIf Not Intersect(Target, Range('C171')) Is Nothing Then
Range('C171') = 3
Range('C170') = Empty
Range('F169') = Range('B171')
End If
If Not Intersect(Target, Range('C174')) Is Nothing Then
Range('C174') = 3
Range('C175') = Empty
Range('F175') = Range('B174')
ElseIf Not Intersect(Target, Range('C175')) Is Nothing Then
Range('C175') = 3
Range('C174') = Empty
Range('F175') = Range('B175')
End If
If Not Intersect(Target, Range('C178')) Is Nothing Then
Range('C178') = 3
Range('C179') = Empty
Range('F177') = Range('B178')
ElseIf Not Intersect(Target, Range('C179')) Is Nothing Then
Range('C179') = 3
Range('C178') = Empty
Range('F177') = Range('B179')
End If
If Not Intersect(Target, Range('C182')) Is Nothing Then
Range('C182') = 3
Range('C183') = Empty
Range('F183') = Range('B182')
ElseIf Not Intersect(Target, Range('C183')) Is Nothing Then
Range('C183') = 3
Range('C182') = Empty
Range('F183') = Range('B183')
End If
If Not Intersect(Target, Range('C186')) Is Nothing Then
Range('C186') = 3
Range('C187') = Empty
Range('F185') = Range('B186')
ElseIf Not Intersect(Target, Range('C187')) Is Nothing Then
Range('C187') = 3
Range('C186') = Empty
Range('F185') = Range('B187')
End If

------------------------------
Merci beaucoup pour votre aide
Domi
 

Hervé

XLDnaute Barbatruc
Bonsoir domi

sans avoir testé, essaye un truc comme ca :



Select Case Target.Address(0, 0)
       
Case 'C158', 'C159', 'C162', 'C163', 'C166', 'C167', 'C170', 'C171', 'C174', 'C175', 'C178', 'C179', 'C182', 'C183', 'C186', 'C178':
                Target = 3
               
If Target.Row Mod 2 = 0 Then
                        Target.Offset(1, 0) = Empty
               
Else
                        Target.Offset(-1, 0) = Empty
               
End If
                        Target.Offset(0, 3) = Target(0, -1)
End Select

il serait mieux que tu nommes tes cellules, ca simplifirait encore le code.

si problème, merci de nous fournir un fichier exemple.

salut
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonjour Domi, bonjour Hervé, bonjour à toutes et à tous :)

Hervé, tu embrasseras ta tantine pour moi :p

Sinon pour le code, c'est un peu plus complexe qu'il n'y paraît, et je verrais plutôt un code de ce type (à vérifier) :

With Target
  If (.Column = 3) And (.Row ›= 158) And (.Row ‹= 187) And _
          (.Row Mod 4 › 1) Then
    .Value = 3
    .Offset(1 - 2 * (.Row Mod 2), 0) = Empty
    .Offset(1 - (.Row Mod 2) - 2 * (((.Row \\\\\\\\ 4) + 1) Mod 2), 3) = .Offset(0, -1)
  End If
End With

En cas de recopie du code, remplacer les symboles '‹' et '›' par inférieur ou supérieur au clavier (ces symboles ne passent pas dans les posts).

A+ ;)

EDITION : Petite erreur dans le code : il manquait un modulo :p :whistle:

Message édité par: Charly2, à: 15/03/2006 05:44

Message édité par: Charly2, à: 15/03/2006 07:15

Message édité par: Charly2, à: 15/03/2006 07:26
 

Charly2

Nous a quittés en 2006
Repose en paix
re à tout le monde,

En prime pour Domi, une petite vérification d'offsets calculés :silly: :p :silly:

[file name=Domi_Verification.zip size=8607]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Domi_Verification.zip[/file]

A+ ;)
 

Pièces jointes

  • Domi_Verification.zip
    8.4 KB · Affichages: 17

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 938
Membres
103 988
dernier inscrit
Feonix