1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| Sub depart()
verif = ""
adresse_cel = Selection.Address
nsc = Range(adresse_cel).Column
nsr = Range(adresse_cel).Count
nsl = Range(adresse_cel).Row
pt1 = Range(adresse_cel).End(xlUp).Offset(nsl - 1, 0).Address 'adresse 1ere ligne selectionnée
pt2 = Range(pt1).Offset(nsr - 1, 0).Address 'adresse derniere ligne selectionnée
If nsc <> 5 Or Range(pt1).Value = "" Then
Exit Sub
End If
If nsr = 1 Then
If Range("d" & nsl).Value = "" Then
verif = "": message = MsgBox("veuillez d'abord saisir le journal", vbOKOnly, "ATTENTION")
If message = "1" Then
Range("e" & nsl).Value = "": Range("d" & nsl).Select: End If
Else 'recherche pour une seule selection
activitecherchee = Sheets("saisies").Range(adresse_cel).Value
c = Sheets("codes").Range("a2").End(xlDown).Offset(0, 0).Row
For K = 0 To c
codecherche = Sheets("CODES").Range("a2").Offset(K, 0).Value
groupecherche = Sheets("CODES").Range("a2").Offset(K, 2).Value
If codecherche = activitecherchee Then: Exit For
Next K
tempo = Sheets("saisies").Range("n" & nsl).Address
Sheets("saisies").Range(tempo).Value = groupecherche
verif = "ok"
Exit Sub
End If
Exit Sub
If verif = "ok" Then: Exit Sub
End If' ci-dessous conditions pour recopies incrémentées ou étendues
If Range(adresse_cel).End(xlUp).Offset(nsl - 1, 0).Value = "" And Range(adresse_cel).End(xlUp).Offset(nsl - 1, -1).Value = "" Then
verif = "ok": Range(adresse_cel).End(xlUp).Offset(nsl, -1).Select: Exit Sub
End If
If nsc <> 5 Then
Exit Sub
End If
If nsr > 1 Then
If nsc = 5 Then
If Range("e" & nsl).Offset(1, -1).Value <> "" Then
pt = "": pt1 = "": pt2 = ""
Call selectionmultiple
ElseIf Range("e" & nsl).Offset(1, -1).Value = "" Then
verif = "": message = MsgBox("veuillez d'abord saisir le journal", , "ATTENTION")
adresse_cel = Selection.Address
pt1 = Range(adresse_cel).End(xlUp).Offset(nsl, 0).Address
pt2 = Range(adresse_cel).End(xlUp).Offset(nsl + nsr - 2, 0).Address
Range(pt1, pt2).ClearContents: verif = "ok"
End If
End If
End If
' ci-dessous empeche la macro si le journal n'est pas saisi en premier
If Range("d" & nsl).Value = "" And Range("e" & nsl).Value <> "" Then
verif = "": message = MsgBox("veuillez d'abord saisir le journal", vbOKOnly, "ATTENTION")
If message = "1" Then
Range("e" & nsl).Value = "": Range("d" & nsl).Select: Exit Sub
End If
End If
' ci-dessous si les conditions ci-dessus sont remplies pour selection simple, execute la macro
End Sub
Sub selectionsimple()
activitecherchee = Sheets("saisies").Range(adresse_cel).Value
c = Sheets("codes").Range("a2").End(xlDown).Offset(0, 0).Row
For K = 0 To c
codecherche = Sheets("CODES").Range("a2").Offset(K, 0).Value
groupecherche = Sheets("CODES").Range("a2").Offset(K, 2).Value
If codecherche = activitecherchee Then: Exit For
Next K
Sheets("saisies").Range(pt1).Offset(0, 9).Value = groupecherche
Sheets("saisies").Range("a2").End(xlDown).Offset(1, 0).Select
Stop
End Sub
Sub selectioncopiee()
nsr = Range(Selection.Address).Count
nsl = Range(Selection.Address).Row
nsc = Range(Selection.Address).Column
adresse_cel = Selection.Address
Range(adresse_cel).Select
pourtext = "a"
End Sub
Sub selectionmultiple()
adresse_cel = Selection.Address
nsc = Range(adresse_cel).Column
nsr = Range(adresse_cel).Count
nsl = Range(adresse_cel).Row
s = nsl
pt = Range(adresse_cel).End(xlUp).Offset(nsl - 1, 9).Address
pt1 = Range(adresse_cel).End(xlUp).Offset(nsl + nsr - 2, 9).Address
pt2 = Range(pt, pt1).Address
K = "": n = "": verif = "": activitecherchee = ""
'fin de boucle pour rechercher l'activité dans le feuille des codes
c = Sheets("CODES").Range("A2").End(xlDown).Offset(1, 0).Row
'recherche activité
activitecherchee = Sheets("saisies").Range("e" & nsl).Value
K = 0
Do
K = K + 1
groupe = Sheets("CODES").Range("a2").Offset(K, 2).Value
Loop While activitecherchee <> Sheets("CODES").Range("a2").Offset(K, 0).Value
K = 0
verif = "ok"
Sheets("saisies").Range(pt).Select
Sheets("saisies").Range(pt).Value = groupe
Selection.AutoFill Destination:=Range(pt2), Type:=xlFillDefault
Range("d2").End(xlDown).Offset(1, 0).Select
Exit Sub
End Sub |
Partager