Probleme de langage
bonjour a tous ,j'essaie de comprendre une formule et je veux adapter a une autre feuille mais je coince
je vous met mon bout de langage: je ne comprend pas tout dans ce qui est surligné
merci a vous pour un coup de main
Option Explicit
Dim c, ln, i, plage()
Private Sub Worksheet_Change(ByVal Target As Range)
datejour
Application.EnableEvents = False
Application.ScreenUpdating = False
If Target.Count > 1 Then End
If Not Intersect(Target, Range("b1,A7,A55,A103,A151,A199,A247,A295,A343,A391,A439,A487,A535,A583,A631,A679,A727,A775,A823,A871,A919,A967,A1015,A1063,A1111,A1159,A1207,A1255,A1303,A1351,A1399,A1447")) Is Nothing Then
ActiveSheet.Unprotect "caje17"
For ln = 7 To 1447 Step 48
For i = 0 To 3
ReDim Preserve plage(2)
Set plage(i) = Range("C" & ln + i * 15 + 4 & ":l" & ln + i * 15 + 5 & _
",M" & ln + i * 15 + 3 & ":R" & ln + i * 15 + 4 & _
",S" & ln + i * 15 + 2 & ":T" & ln + i * 15 + 4 & _
",U" & ln + i * 15 + 2 & ":X" & ln + i * 15 + 2 & _
",Y" & ln + i * 15 + 2 & ":AJ" & ln + i * 15 + 4 & _
",AK" & ln + i * 15 + 3 & ":AZ" & ln + i * 15 + 4 & _
",BA" & ln + i * 15 + 2 & ":BE" & ln + i * 15 + 4 & _
",BF" & ln + i * 15 + 2 & ":BF" & ln + i * 15 + 4 & _
",C" & ln + i * 15 + 6 & ":X" & ln + i * 15 + 14 & _
",Y" & ln + i * 15 + 6 & ":BF" & ln + i * 15 + 12 & _
",Y" & ln + i * 15 + 13 & ":BF" & ln + i * 15 + 14)
Next i
Union(plage(0), plage(1), plage(2)).Select
If Cells(ln, "A") = Cells(1, "b") Then
Selection.Locked = False
Selection.Locked = True
End If
Next
ActiveSheet.Protect "caje17"
End If
Application.EnableEvents = True
End Sub
bonjour a tous ,j'essaie de comprendre une formule et je veux adapter a une autre feuille mais je coince
je vous met mon bout de langage: je ne comprend pas tout dans ce qui est surligné
merci a vous pour un coup de main
Option Explicit
Dim c, ln, i, plage()
Private Sub Worksheet_Change(ByVal Target As Range)
datejour
Application.EnableEvents = False
Application.ScreenUpdating = False
If Target.Count > 1 Then End
If Not Intersect(Target, Range("b1,A7,A55,A103,A151,A199,A247,A295,A343,A391,A439,A487,A535,A583,A631,A679,A727,A775,A823,A871,A919,A967,A1015,A1063,A1111,A1159,A1207,A1255,A1303,A1351,A1399,A1447")) Is Nothing Then
ActiveSheet.Unprotect "caje17"
For ln = 7 To 1447 Step 48
For i = 0 To 3
ReDim Preserve plage(2)
Set plage(i) = Range("C" & ln + i * 15 + 4 & ":l" & ln + i * 15 + 5 & _
",M" & ln + i * 15 + 3 & ":R" & ln + i * 15 + 4 & _
",S" & ln + i * 15 + 2 & ":T" & ln + i * 15 + 4 & _
",U" & ln + i * 15 + 2 & ":X" & ln + i * 15 + 2 & _
",Y" & ln + i * 15 + 2 & ":AJ" & ln + i * 15 + 4 & _
",AK" & ln + i * 15 + 3 & ":AZ" & ln + i * 15 + 4 & _
",BA" & ln + i * 15 + 2 & ":BE" & ln + i * 15 + 4 & _
",BF" & ln + i * 15 + 2 & ":BF" & ln + i * 15 + 4 & _
",C" & ln + i * 15 + 6 & ":X" & ln + i * 15 + 14 & _
",Y" & ln + i * 15 + 6 & ":BF" & ln + i * 15 + 12 & _
",Y" & ln + i * 15 + 13 & ":BF" & ln + i * 15 + 14)
Next i
Union(plage(0), plage(1), plage(2)).Select
If Cells(ln, "A") = Cells(1, "b") Then
Selection.Locked = False
Selection.Locked = True
End If
Next
ActiveSheet.Protect "caje17"
End If
Application.EnableEvents = True
End Sub
Bonjour,
Toute la partie de code que tu présentes en surligné ....
Cette plage est complexe ... car constituée d'une série de cellules dispersées dans la feuille ...
Voilou ...
re bonjour ,je suis d'accord avec toi mais je voudrait savoir a quoi sert :
for i = 0 to 3
redim preserv
et peut tu me traduire:
Set plage(i) = Range("C" & ln + i * 15 + 4 & ":l" & ln + i * 15 + 5 & _
",M" & ln + i * 15 + 3 & ":R" & ln + i * 15 + 4 & _
merci pour vos reponse
Re,
Deux remarques complémentaires ...
1. A quoi sert une boucle ...? cela sert à être sûr de balayer toute la plage ...
2. A quoi cela sert-il de définir une plage ...? cela permet de pouvoir ensuite intervenir sur cette plage ...
Bon Courage pour la suite ...
re merci pour tes reponses
le probleme ce que je doit mal m'explimer
je cherche a comprendre ce que veut dire
ReDim Preserve plage(2) peut tu me le traduire en francais
For ln = 7 To 1357 Step 45 (ligne 7 a 1357 en sautant de 45 lignes
For i = 0 To 2(selectionne les ligne 0 a 2)
ca j'ai compris
Set plage(i) = Range("C" & ln + i * 15 + 3 & ":L" & ln + i * 15 + 4 &
j'arrive pas a comprendre
* 15 +3
merci pour vos reponse
Bonjour,
Les instructions concernent le redimensionnement de la plage ...et la défintion de la plage ...
La touche F1 peut de donner des pages entières d'explications ... et d'exemples ...
Bonjour,
j'arrive pas a comprendre
* 15 +3
Sert à calculer la 1ère ligne de la plage.
ln + i * 15 + 3au 1er passage ln= 7 et i=0, donc ligne = 7+0*15+3 = 10
eric
re bonjour eric pour vos reponses je comprend mieux
merci encore