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é .... n'a qu'un seul but : construire une plage ...

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 + 3

au 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

Rechercher des sujets similaires à "probleme langage"