Test feuilles / standardisation

jeanluc065 Messages postés 134 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 1 juin 2007 - 22 nov. 2006 à 15:07
jeanluc065 Messages postés 134 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 1 juin 2007 - 23 nov. 2006 à 04:43
Bonjour à toutes et tous,

En access2002, catégorie novice.
Depuis access, je souhaite importer des fichiers xls en vrac. Jusqu'ici, OK si toutes les fichiers ont le même nombre de feuilles. Hélas, ce n'est pas le cas.
J'avais déjà crié au secours ici, j'ai reçu une proposition de Julien et de Jean-Marc mais je n'arrive pas à mettre en application.
Qui pourrait m'aider pour le code ?
Merci d'avance.
JL
************************
Exposé :
en principe  mes 5 feuilles  se présentent dans l'ordre comme ceci : fp , caxx , idxx, ppxx, npxx
parfois : elles se présentent (max 4 feuilles ) comme ceci  fp, idxx ,ppxx , npxx
et parfois : fp, idxx , ppxx

De plus, initialement, le nom de certaines feuilles est complété d'un chiffre xx.

En plus, je dois ajouter une feuille "TG"  dans laquelle je vais récupérer une valeur de le cellule de la feuille FP.

Ma demande :

1- vérifier si il y a 5 feuilles,
    - si oui : ajout d'une 6ème feuille "TG"                  renommer    3 id   4 pp   5=np   6=TG

   - si non :  4 feuilles ou 3 feuilles : ajout de 1 feuille "TG"                  renommer    2 id   3 pp   4=np   5=TG
*******************************************************
ceci marche mais avec 5 feuilles obligatoirement
For Each fichier In fichiers


    Set f = fso.GetFile(fichier)
    If fso.GetExtensionName(fichier) = "xls" Then
       Dim objExcel, objClasseur
       Set objExcel = CreateObject("Excel.Application")
       Set objClasseur = objExcel.Workbooks.Open(fichier)
       'Display alerte => true=oui false=non
       objExcel.DisplayAlerts = False
       'Classeur visible => true=oui false=non
       objExcel.Application.Visible = False


'Rename du 3ème onglet
       objClasseur.Sheets(3).Name = "id"
      
       'Rename du 4ème onglet
       objClasseur.Sheets(4).Name = "pp"
       objExcel.Application.Visible = False
      
       'Rename du 5ème onglet
       objClasseur.Sheets(5).Name = "np"
       objExcel.Application.Visible = False
      
       'ajout feuille 6
       objExcel.ActiveWorkbook.Sheets.Add
       objClasseur.Sheets(5).Name = "tg"
      
        objExcel.ActiveWorkbook.Sheets("target").Select
    objExcel.Cells(1, 1).Value = "CC"
********************************************************
Avec ceci, çà coince
For Each fichier In fichiers


    Set f = fso.GetFile(fichier)
    If fso.GetExtensionName(fichier) = "xls" Then
       Dim objExcel, objClasseur
       Set objExcel = CreateObject("Excel.Application")
       Set objClasseur = objExcel.Workbooks.Open(fichier)
       'Display alerte => true=oui false=non
       objExcel.DisplayAlerts = False
       'Classeur visible => true=oui false=non
       objExcel.Application.Visible = False




Dim i As Integer
Dim ShCount As Integer
ShCount = objClasseur.Worksheets.Count
If ShCount <> 5 Then
    For i = ShCount + 1 To 5
       Call objClasseur.Worksheets.Add(After:=objClasseur.Worksheets(i - 1))
     Next
End If



' test si Complet     fp, ca, id, pp, np
If ShCount = 5 Or ShCount > 5 Then
objClasseur.Sheets(3).Name = "id"
objClasseur.Sheets(4).Name = "pp"
objClasseur.Sheets(5).Name = "np"
objClasseur.Sheets(6).Name = "TG"
End If


Dim ii As Integer
Dim ShCount1 As Integer
ShCount1 = objClasseur.Worksheets.Count
If ShCount1 <> 5 Then
    For ii = ShCount1 + 1 To 5
       Call objClasseur.Worksheets.Add(After:=objClasseur.Worksheets(ii - 1))
      
     Next
End If

' test si    incomplet     fp, id, pp,       et parfois np
If ShCount1 < 5 Then
objClasseur.Sheets(2).Name = "id"
objClasseur.Sheets(3).Name = "pp"
objClasseur.Sheets(4).Name = "np"
objClasseur.Sheets(5).Name = "TG"
 End If

       ' valeur cell1
       objExcel.ActiveWorkbook.Sheets("TG").Select
       objExcel.Cells(1, 1).Value = "CC"

      
                  

2 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
22 nov. 2006 à 21:01
 Bonsoir à tous....

Salut jean-luc
Petite incompréhension dans ton exposé:

   - si non :  4 feuilles ou 3 feuilles : ajout de 1 feuille "TG"                  renommer    2 id   3 pp   4=np   5=TG

Si ton fichier contient 3 feuilles =>
1 = fp
2 = id
3 = pp ou np ?????
+ 1 a créer = tg

On en revient à l'exemple que je t'avais proposé avec Case....+ count
At home, j'arrive à ton but, mais je ne maitrise pas les indexs de sheets().

jean-marc
0
jeanluc065 Messages postés 134 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 1 juin 2007
23 nov. 2006 à 04:43
Bonjour Jean-Marc,

Merci pour ton soutien,


Si 3 pp           +1 à créertg
Bonne journée
JL


 


 
0
Rejoignez-nous