Exploiter le contenue d'un tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
797
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
876
Réponses
10
Affichages
617
Réponses
4
Affichages
628
Réponses
3
Affichages
769
Retour