Plus grand onglet d'un classeur

bonjour

je dispose d'un classeur B dans lequel chaque feuille est numerotée

je cherche a exprimer en vba " la feuille du classeur B portant le numero le plus grand numéro "

en partant de mon bout de code :

Dim feuille As Worksheet
            Dim chemin As String
chemin = ThisWorkbook.Path
    Workbooks.Open Filename:=chemin & "\classeur B.xls"

    For Each feuille In Worksheets
    If Not IsNumeric(feuille.Name) Then GoTo 1
        If feuille.Name = Wb1.Sheets("Feuil2").Range("H4")  then ......

je suis embeté avec "feuille.Name " pour exprimer que je voudrai la plus grande en vba , j'ai pensé à max(feuille.name) mais ca ne marche pas

en vous remerciant pour toute suggetion

Bonjour

A tester

Sub machin()
Dim Ws As Worksheet
Dim NumMax As Integer

  Workbooks.Open Filename:=ThisWorkbook.Path & "\classeur B.xls"
  For Each Ws In Sheets
    If Val(Ws.Name) > NumMax Then
      NumMax = Val(Ws.Name)
    End If
  Next Ws
  MsgBox "Position de la feuille " & Sheets(CStr(NumMax)).Index
End Sub

merci à toi , géniale comme réponse

bonsoir

j'aurai une question supplementaire par rapport à ce post , comment puis je faire ressortir la valeur du plus grand onglet du classeur B

pour l'afficher en cellule A1 feuille 1

j'ai essayé ceci

sheets("feuil1").Range("A1")=Sheets(CStr(NumMax)).Index

mais ca ne marche pas

merci pour toute correction

Bonsoir

Pourquoi cela ne fonctionne pas ?

message d'erreur ?

Oui lequel ?

oui .. j'ai un bug du type l'indice ne correspond pas à la selection

Dim Ws As Worksheet
Dim NumMax As Integer

  Workbooks.Open Filename:=ThisWorkbook.Path & "\BB.xls"
  For Each Ws In Sheets
    If Val(Ws.Name) > NumMax Then
      NumMax = Val(Ws.Name)
     Sheets("feuil1").Range("A1") = Sheets(CStr(NumMax)).Index
    End If
  Next Ws
  MsgBox "Position de la feuille " & Sheets(CStr(NumMax)).Index
End Sub

et la ligne

Sheets("feuil1").Range("A1") = Sheets(CStr(NumMax)).Index

est surlignée

Bonsoir

Surement dans ton classeur B tu n'as pas de feuille Feuil1

Je pense (sans être sur à 100 %) que ton code doit être le suivant

Dim Ws As Worksheet
Dim NumMax As Integer

  Workbooks.Open Filename:=ThisWorkbook.Path & "\BB.xls"
  For Each Ws In Sheets
    If Val(Ws.Name) > NumMax Then
      NumMax = Val(Ws.Name)
    End If
  Next Ws
  ThisWorkbook.Sheets("feuil1").Range("A1") = Sheets(CStr(NumMax)).Index
  MsgBox "Position de la feuille " & Sheets(CStr(NumMax)).Index
End Sub

En effet !!!! c'est bien ca ! merci infinement !

Rechercher des sujets similaires à "grand onglet classeur"