Exploiter le contenue d'un tableau

damasius

XLDnaute Nouveau
Bonjour, je voudrais pouvoir utiliser les éléments d'un tableau qui contient les mon de mes feuilles pour faire tournée une application. Voici le code:

Sub DicoVarIntParam()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Dim DicoVarIntParam(2) As String 'Définit la taille du tableau et le type de données.
Dim i As Integer
Dim Temp As String
Dim Feuil As String
Dim Ligne As Long
'==========Liste de feuille à exploiter====================
DicoVarIntParam(0) = """Dico"""
DicoVarIntParam(1) = """Variable_Interne"""
DicoVarIntParam(2) = """Parametres"""

'==================================================
For i = 0 To 2
Feuil = DicoVarIntParam(i)
MsgBox Feuil 'Pour voir le nom de la feuille traitée

Temp = Dir(ActiveWorkbook.Path & "\*.xls") 'ouvre les fichiers xls du reperoire dans le quel se trouvre Recap.xls
Application.DisplayAlerts = False 'désactive les éventuells msg d'alerte
Do While Temp <> ""
If Temp <> "Recap.xls" Then 'tant qu'il y'a un fichier xls faire
Workbooks.Open ActiveWorkbook.Path & "\" & Temp 'ouvrire le fichier
Workbooks(Temp).Sheets(Feuil).Range("A1").CurrentRegion.Copy 'copier le contenue de la page Feuil
Workbooks("Recap.xls").Sheets(i + 1).Activate 'se placler dans la pare i+1 du fichier Recap
Ligne = Sheets(i + 1).Range("A65536").End(xlUp).Row + 1 'On sauter la première ligne
Range("A" & CStr(Ligne)).Select "???"
ActiveSheet.Paste " on cole la copie faite plus haut"
Workbooks(Temp).Close 'on ferme le fichier temp
End If
Temp = Dir
Loop
Range("A1").Select
Application.DisplayAlerts = True
Next i

Application.Calculation = xlAutomatic
End Sub

L'exécution me renvoie un message d'erreur (L'indice n'appartient pas à la selection et ce concerne la ligne de code:
Workbooks(Temp).Sheets(Feuil).Range("A1").CurrentRegion.Copy 'copier le contenue de la page Feuil

Lorsque j'exécute le code trois fois en changeant manuellement les lignes
Workbooks(Temp).Sheets("Dico").Range("A1").CurrentRegion.Copy 'copier le contenue de la page Dico
Workbooks("Recap.xls").Sheets(1).Activate 'selectionné la feuille 1 du fichier Recap
Ligne = Sheets(1).Range("A65536").End(xlUp).Row + 1 'sauter la 1er ligne


il fonctionne.
Mon problème se situe au niveau de l'exploitation du contenu du tableau
Merci de m'aider à trouver une solution à ce problème
 

damasius

XLDnaute Nouveau
Re : Exploiter le contenue d'un tableau

Non justement dans ce cas tu auras : Workbooks(Temp).Sheets(Dico).Range("A1") au lieux de Workbooks(Temp).Sheets("Dico").Range("A1")
Le triple " me permet de récupérer la valeur sous forme de "Dico"
Je joint trois fichier à placer dans un même repertoir ensuite exécuter le code dans le fichier Recup.
Le but du jet est de concaténé Fichier 1 et Fichier 2 dans le Fichier Recap
 

Pièces jointes

  • Fichier 1.xls
    40 KB · Affichages: 62
  • Fichier 2.xls
    43 KB · Affichages: 61
  • Fichier 1.xls
    40 KB · Affichages: 62
  • Fichier 2.xls
    43 KB · Affichages: 62
  • Fichier 1.xls
    40 KB · Affichages: 69
  • Fichier 2.xls
    43 KB · Affichages: 62
  • Recap.xls
    39 KB · Affichages: 60
  • Recap.xls
    39 KB · Affichages: 60
  • Recap.xls
    39 KB · Affichages: 62

damasius

XLDnaute Nouveau
Re : Exploiter le contenue d'un tableau

Bonjour à tous, j'ai trouver la solution à mon problème. Merci à tous ceux qui avait essayer de trouver une solution.
En ayant définie mon tableau de variable, voici le code:

For D = 1 To Sheets.Count + 2 Step 2
If j <= 1 Then
Application.DisplayAlerts = False
Sheets(Sheets(D).Name).Select
Sheets(Sheets(D).Name).Copy before:=Sheets(D + 1)
Sheets(D + 1).Select
Sheets(D + 1).Name = DicoVarIntParam(j)
j = j + 1
ElseIf j = 2 Then
Application.DisplayAlerts = False
Sheets(Sheets(D).Name).Select
Sheets(Sheets(D).Name).Copy After:=Sheets(D)
Sheets(D + 1).Select
Sheets(D + 1).Name = DicoVarIntParam(j)
End If
Next D
 

damasius

XLDnaute Nouveau
Exploiter le contenue d'un tableau [Resolu]

Bonjour à tous, j'ai trouver la solution à mon problème. Merci à tous ceux qui avait essayer de trouver une solution.
En ayant définie mon tableau de variable, voici le code:

For D = 1 To Sheets.Count + 2 Step 2
If j <= 1 Then
Application.DisplayAlerts = False
Sheets(Sheets(D).Name).Select
Sheets(Sheets(D).Name).Copy before:=Sheets(D + 1)
Sheets(D + 1).Select
Sheets(D + 1).Name = DicoVarIntParam(j)
j = j + 1
ElseIf j = 2 Then
Application.DisplayAlerts = False
Sheets(Sheets(D).Name).Select
Sheets(Sheets(D).Name).Copy After:=Sheets(D)
Sheets(D + 1).Select
Sheets(D + 1).Name = DicoVarIntParam(j)
End If
Next D
 

Discussions similaires

Réponses
2
Affichages
210

Statistiques des forums

Discussions
312 970
Messages
2 094 044
Membres
105 926
dernier inscrit
Odyssea