Excel de liste de la plage nommée dans une feuille de calcul et d'obtenir la valeur

Comment obtenir une liste de la plage nommée existent dans une feuille de calcul spécifique qui commencent par la chaîne donnée (par exemple tous les noms de plage de commencer avec au total) et de saisir la valeur? Je suis en train de faire Sous-Total et le Total du coût de l'hébergement basé sur la date. Je vais attribuer un nom unique pour chaque Sous-Total basé sur la Date de groupe. Ensuite, j'ai un bouton qui doivent être cliqué quand il a fini de calculer le Total, fondée sur la Plage Nommée que j'ai attribué de façon unique à chaque Sous-Total.

Ci-dessous le code que j'ai écrit pour faire le Grand Total:

Sub btnTotal()

    Dim Total, LastRowNo As Long

    LastRowNo = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count

    Total = 0

    For Each N In ActiveWorkbook.Names
        Total = Total + IntFlight.Range(N.Name).Value
    Next N

    IntFlight.Range("$P" & LastRowNo).Select
    Selection.NumberFormat = "$* #,##0.00;$* (#,##0.00);$* ""-""??;@"
    With Selection
        .Font.Bold = True
    End With

    ActiveCell.FormulaR1C1 = Total

End Sub

Remarque: le IntFlight de "Total = Total + IntFlight.Gamme(N. Nom).Valeur" est le nom de ma feuille de calcul.

Le seul problème avec le code ci-dessus, il recherche tous les noms de gamme existe dans le classeur. J'ai juste besoin de trouver une plage nommée existent que dans une seule feuille de calcul, qui commencent avec la chaîne et le numéro de ligne (total26: désigne Sous-Total à partir de la ligne 26) et puis saisir la valeur à somme-ed comme le Grand Total.

Aucune idées de comment faire cela? Été passé 2 jours pour trouver la réponse.

Tas merci à l'avance.

EDIT 1 (Solution proposée par Charles Williams avec l'aide de bélisaire):

C'est ce que j'ai fait avec le code de Charles Williams:

Option Explicit
Option Compare Text

Sub btnIntFlightsGrandTotal()

    Dim Total, LastRowNo As Long
    LastRowNo = FindLastRowNo("International Flights")

    Dim oNM As Name
    Dim oSht As Worksheet
    Dim strStartString As String

    strStartString = "IntFlightsTotal"
    Set oSht = Worksheets("International Flights")

    For Each oNM In ActiveWorkbook.Names
        If oNM.Name Like strStartString & "*" Then
            If IsNameRefertoSheet(oSht, oNM) Then
                Total = Total + Worksheets("International Flights").Range(oNM.Name).Value
            End If
        End If
    Next oNM

    IntFlights.Range("$P" & LastRowNo).Select
    Selection.NumberFormat = "$* #,##0.00;$* (#,##0.00);$* ""-""??;@"
    With Selection
        .Font.Bold = True
    End With

    ActiveCell.FormulaR1C1 = Total

End Sub

Function FindLastRowNo(SheetName As String) As Long

    Dim oSheet As Worksheet
    Set oSheet = Worksheets(SheetName)

    FindLastRowNo = oSheet.UsedRange.Row + oSheet.UsedRange.Rows.Count

End Function

Merci à vous tous pour votre aide. Maintenant, j'ai besoin de venir avec ma propre version de ce script.

OriginalL'auteur Arief | 2010-10-27