Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

selection et effacement partiel d'un groupe de travail

4 réponses
Avatar
Sky
Bonjour à tous,

Voici mon problème :

J'ai des feuilles nommées par semaine S1, S2 , S3, S4, etc....

J'ai un code me permettant de sélectionner toutes les feuilles commençant
par la lettre S

Dim sngArray() As String
A = 0

For i = 1 To Sheets.Count
If Left(Sheets(i).Name, 1) = "S" Then
ReDim Preserve sngArray(A)
sngArray(A) = Sheets(i).Name
A = A + 1
End If
Next
Sheets(sngArray).Select

Je voudrais que dans le groupe de travail ainsi sélectionné, il me
déselectionne la feuille dont le chiffre est le plus important

Comment faire ?

Merci d'avance

4 réponses

Avatar
Philippe
Bonjour,

Comme ça , ce qui me vient à l'idée c'est de ne contourner le problème :
évitr de sélectionner la feuille que tu es sensée déselectionner

1/ cherche le max des feuilles sélectionnables. Donne lui la valeur 'toto'

2/ Refais ta boucle avec la condition : If Left(Sheets(i).Name, 1) = "S" and
i <> toto Then

On évite ainsi la désélection sur laquelle je dois dire que je blloque aussi.

Bon courage.

Philippe.

(j'ai un problème de compréhension dans 'la feuille dont le chiffre est le
plus important' => j'espere donc ne pas etre à coté de la plaque :-) )






Bonjour à tous,

Voici mon problème :

J'ai des feuilles nommées par semaine S1, S2 , S3, S4, etc....

J'ai un code me permettant de sélectionner toutes les feuilles commençant
par la lettre S

Dim sngArray() As String
A = 0

For i = 1 To Sheets.Count
If Left(Sheets(i).Name, 1) = "S" Then
ReDim Preserve sngArray(A)
sngArray(A) = Sheets(i).Name
A = A + 1
End If
Next
Sheets(sngArray).Select

Je voudrais que dans le groupe de travail ainsi sélectionné, il me
déselectionne la feuille dont le chiffre est le plus important

Comment faire ?

Merci d'avance






Avatar
Alain CROS
Bonjour.

Sub GT()
Dim sngArray() As String
Dim A&, i&, TempName$, CurName$
For i = 1 To Sheets.Count
CurName = Sheets(i).Name
If Left$(CurName, 1) = "S" Then
If TempName = "" Then
TempName = CurName
Else
ReDim Preserve sngArray(A)
If CLng(Right$(TempName, Len(TempName) - 1&)) > _
CLng(Right$(CurName, Len(CurName) - 1&)) Then
sngArray(A) = CurName
Else
sngArray(A) = TempName
TempName = CurName
End If
A = A + 1
End If
End If
Next
Sheets(sngArray).Select
End Sub

Alain CROS

"Sky" a écrit dans le message de news: 432eb2df$0$983$
| Bonjour à tous,
|
| Voici mon problème :
|
| J'ai des feuilles nommées par semaine S1, S2 , S3, S4, etc....
|
| J'ai un code me permettant de sélectionner toutes les feuilles commençant
| par la lettre S
|
| Dim sngArray() As String
| A = 0
|
| For i = 1 To Sheets.Count
| If Left(Sheets(i).Name, 1) = "S" Then
| ReDim Preserve sngArray(A)
| sngArray(A) = Sheets(i).Name
| A = A + 1
| End If
| Next
| Sheets(sngArray).Select
|
| Je voudrais que dans le groupe de travail ainsi sélectionné, il me
| déselectionne la feuille dont le chiffre est le plus important
|
| Comment faire ?
|
| Merci d'avance
|
|
|
Avatar
Michel NOLF
Est ce que apres ta macro:
redim preserve sngArray(ubound(sngArray)-1) ne pourrais pas convenir

"Sky" a écrit dans le message de news:
432eb2df$0$983$
Bonjour à tous,

Voici mon problème :

J'ai des feuilles nommées par semaine S1, S2 , S3, S4, etc....

J'ai un code me permettant de sélectionner toutes les feuilles commençant
par la lettre S

Dim sngArray() As String
A = 0

For i = 1 To Sheets.Count
If Left(Sheets(i).Name, 1) = "S" Then
ReDim Preserve sngArray(A)
sngArray(A) = Sheets(i).Name
A = A + 1
End If
Next
Sheets(sngArray).Select

Je voudrais que dans le groupe de travail ainsi sélectionné, il me
déselectionne la feuille dont le chiffre est le plus important

Comment faire ?

Merci d'avance





Avatar
Sky
Bonjour michel,

ton code me convient parfaitement

merci de ton aide

@+

"Michel NOLF" a écrit dans le message de
news: %
Est ce que apres ta macro:
redim preserve sngArray(ubound(sngArray)-1) ne pourrais pas convenir

"Sky" a écrit dans le message de news:
432eb2df$0$983$
Bonjour à tous,

Voici mon problème :

J'ai des feuilles nommées par semaine S1, S2 , S3, S4, etc....

J'ai un code me permettant de sélectionner toutes les feuilles commençant
par la lettre S

Dim sngArray() As String
A = 0

For i = 1 To Sheets.Count
If Left(Sheets(i).Name, 1) = "S" Then
ReDim Preserve sngArray(A)
sngArray(A) = Sheets(i).Name
A = A + 1
End If
Next
Sheets(sngArray).Select

Je voudrais que dans le groupe de travail ainsi sélectionné, il me
déselectionne la feuille dont le chiffre est le plus important

Comment faire ?

Merci d'avance