Concaténer des données de divers fichiers à partir d'1 Usf Liste

[Résolu/Fermé]
Signaler
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
-
Messages postés
16056
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
26 octobre 2021
-
Bonjour,
je cherche à rappatrier dans un fichier récap les feuilles de différents fichiers de Suivi (tous les fichiers ont des feuilles qui portent le même nom).
J'ai constituer un USF avec l'ensemble des noms des feuilles.
je voudrais, quand on sélectionne une feuille (ou plusieurs) récupérer l'information et concaténer les tableaux de ces feuilles dont le nom a été sélectionné dans la userform, pour l'ensemble des fichiers.

Ex: j'ai sélectionné la feuil1 et la feuil2, dans la USF
je crée dans mon fichier Récap, 2 feuilles portant les noms sélectionnés : Feuil1 et Feuil2
Dans RecapFeuil1 je vais copier en B1 le tableau (B1:G9) de la Feuil1 du fichier Suivi1 (en précisant en A1 = Suivi1)
puis en dessous, je vais copier le tableau (B1:G11) de la Feuil1 du fichier Suivi2 (en précisant en A10 = Suivi2)
et la même chose dans RecapFeuil2, avec les feuil2 des fichiers suivi1 et suivi2.

Je vous joints mon fichier, mais je suis pas très avancée, vue que jusqu'à présent, ma très petite expérience m'a appris à utiliser un formulaire pour remplir une feuille mais pas pour récupérer les données dans VBE
https://www.cjoint.com/?BLgs4t7I8Ps

Merci d'avance pour votre aide

4 réponses

Messages postés
16056
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
26 octobre 2021
1 552
Bonjour,

Un exemple de programmation. Modifiez le chemin et le nom des fichiers.

Essayez et rendez compte. A votre disposition pour les explications sur la programmation

https://www.cjoint.com/?BLhsXgGwUcA

A bientot
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
14
Bonsoir f894009,
Merci pour ta réponse.
Effectivement, je ne comprends pas tout, et loin s'en faut.
J'y suis depuis 7:30 ce matin...
je reprendrais ça demain après midi, après les cadeaux de noël et je reviendrais vers toi certainement pour qq explications.
Au fait, Bon anniversaire et merci pour ton cadeau...
Quel boulot tu as fait ! C'est vraiment sympa.
A bientôt donc
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
14
Bonjour f894009,
Oui, c'est un sacré boulot que tu as fait pour moi ! Merci beaucoup.
Finalement, je comprends tout ce que tu as écris, même si je ne serais bien sur pas capable le refaire toute seule ; mais à force de le relire...
C'est à la fois simple, complet et très efficace.
Moi, je cherchais à mettre les noms des onglets sélectionnés quelque part pour les utiliser or toi tu les gardes simplement en mémoire et tu les utilises tous les uns après les autres... Fort

Par contre, c'est la 1ère fois que je vois utiliser des variables dans des variables avec la syntaxe variable(variable), comme par exemple Onglet_Ch(Nb_Select) = LtB_Feuille.List(Lig_LtB) dans la sub de rechercher des onglets sélectionnés
Private Sub Rech_Onglet_Select()
  Dim Lig_LtB As Variant, Nb_Select As Integer
  Nb_Select = 0
  For Lig_LtB = 0 To LtB_Feuille.ListCount - 1 'pour toutes les lignes du tablo Onglets
    If LtB_Feuille.Selected(Lig_LtB) = True Then    'si on sélectionne le 1er onglet possible
      Onglet_Ch(Nb_Select) = LtB_Feuille.List(Lig_LtB) 'l'onglet cherché prend le nom de la 1ère sélection
      Nb_Select = Nb_Select + 1     'on incrémente la sélection svte
    End If
  Next Lig_LtB  'incrément la ligne de 1
End Sub

Pourrais tu me donner qq explications, dans quels cas peut-on utiliser ce type de code, la syntaxe est-elle toujours la même, y a-t'il un autre moyen de coder ?
Messages postés
16056
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
26 octobre 2021
1 552
Bonjour,

'Par contre, c 'est la 1ère fois que je vois utiliser des variables
'dans des variables avec la syntaxe variable(variable),
'comme par exemple Onglet_Ch(Nb_Select) = LtB_Feuille.List(Lig_LtB)
'dans la sub de rechercher des onglets sélectionnés

Private Sub Rech_Onglet_Select()
  Dim Lig_LtB As Variant, Nb_Select As Integer
  'Initialisation du pointeur Tableau mise en memoire
  Nb_Select = 0
  'recherche des onglets selectionnes dans la listbox de 0 a Nombre de "lignes" de la listbox
  For Lig_LtB = 0 To LtB_Feuille.ListCount - 1 'pour toutes les lignes du tablo Onglets
    'Test si "ligne" selectionnee
    If LtB_Feuille.Selected(Lig_LtB) = True Then
      'Range le texte de la "ligne" selectionnee
      'dans Tableau mise en memoire des onglets selectionnes
      Onglet_Ch(Nb_Select) = LtB_Feuille.List(Lig_LtB)
      'Incremente le pointeur du Tableau mise en memoire pour la selection suivante
      Nb_Select = Nb_Select + 1
    End If
  Next Lig_LtB  'incrément la ligne de 1
End Sub


Ce type de code est lie aux objets utilises et a ce que vous voulez obtenir comme resultat

Bon courage