Intégrer une variable lngCount dans nom feuille

Résolu
Argan -  
 Argan -
Bonjour,

je souhaite changer le nom d'une feuille en y intégrant un lngCount dedans car Excel crée un nom par défaut. J'aimerai par exemple que pour chaque feuille importée, le nom soit Feuille(lngCount). Pourriez vous m'aider ?
Merci d'avance !

Voici le code :
Sub Ouverture_et_traduction()
'
' Ouverture_et_traduction Macro
'

'
     Dim lngCount As Long

    ' Ouverture de la boîte de dialogue Parcourir
    
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True
        .Show

        ' Permet de sélectionner un ou plusieurs fichiers
        
        For lngCount = 1 To .SelectedItems.Count
         
            ActiveWorkbook.Worksheets.Add
            NameFile = .SelectedItems(lngCount)
        
        With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & NameFile, _
        Destination:=Range("$A$1"))
        
        
        
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
        End With


EDIT : Ajout des balises de code (jordane)

1 réponse

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, peut-être remplacer la ligne 19 par:
    ActiveWorkbook.Worksheets.Add.Name = "Feuille(" & cstr(lngCount) & ")"

    sache que les QueryTables vont rester en permanence dans ton classeur: si pas utile, mieux de les supprimer.
    0
    1. Argan
       
      Merci beaucoup pour la réponse ça a marché parfaitement !
      0
    2. Argan
       
      Bonjour, j'aimerais utiliser les valeurs d'une des feuilles sélectionné à l'aide du lngCount, pour les insérer dans un graphique. Je ne trouve pas la bonne formulation...

      J'ai tenté ceci :

      ActiveSheet.ChartObjects("Graphique 2").Activate
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(lngCount).Name = "& .SelectedItems(lngCount)) &"
      ActiveChart.SeriesCollection(lngCount).XValues = _
      Worksheets(" & .SelectedItems(lngCount) & ").Range("A5:A10000")
      ActiveChart.SeriesCollection(lngCount).Values = _
      Worksheets("" & .SelectedItems(lngCount) & "").Range("B5:B10000")

      Malheureusement ça ne marche pas...
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Argan
       
      "ça ne marche pas": message d'erreur?
      veux-tu tout insérer dans le même graphique existant?
      0
    4. Argan
       
      Il n'y a pas de message d'erreur, le graphique ne prend juste pas en compte le nom du fichier qui m'intéresse et met comme nom de la série : "& .SelectedItems(lngCount)) &"
      Oui je veux insérer les valeurs de toutes mes feuilles dans un même graphique à part !
      0
    5. Argan
       
      J'ai réussi à résoudre le problème :

      Dim x As String
      x = .SelectedItems(lngCount)

      ActiveSheet.ChartObjects("Graphique 2").Activate
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(lngCount).Name = "=""(" & CStr(x) & ")"""
      ActiveChart.SeriesCollection(lngCount).XValues = _
      Worksheets(CStr(x)).Range("A5:A10000")
      ActiveChart.SeriesCollection(lngCount).Values = _
      Worksheets("=""(" & CStr(x) & ")""").Range("B5:B10000")

      mais par contre j'ai le même soucis avec le worksheets en dessous!

      J'ai le message d'erreur '9' :L'indice n'appartient pas à la sélection
      0