Copier coller, 2 conditions, fichier fermé

Bonjour

J'ai lu beaucoup dernièrement sur les codes pour aller lire des données dans un fichier fermé. Si le fichier dans lequel je vais lire est ouvert, je suis en mesure de retirer les informations, mais s'il est fermé alors là... j'en arrache.

Le fichier exemple et le fichier fermé dans lequel je dois récupérer toutes les colonnes (A à BU) pour les données qui ont ces 2 conditions : Un groupe école précis (Colonne B) et un groupe classe précis (Colonne C). Ainsi, je voudrais aller avoir les données pour l'école 010 et la classe 101 dans un fichier ouvert.... Il faut donc que toutes les colonnes (A a BU) se retrouvent coller (seulement les valeurs et non un lien) dans un autre fichier. Par chance, les écoles sont classés et les groupe classe aussi, dans le sens que lorsqu'on attrape le premier élève dans l'école 010 et le groupe 101, ils se suivent tous jusqu'au début du groupe 102... Car mon fichier a 25000 élèves, et ils ne sont pas répartis partout dans les 25 000 élèves.

Mes connaissances sont trop limités pour pouvoir adapter les codes que je trouve sur l'internet et c'est surtout "l'intersection" entre les 2 conditions que je n'arrive pas à programmer. Voici mon code qui fonctionne si le fichier "exemple" serait ouvert, mais qui ne fait que planter s'il est fermé :

ecole = Sheets("ouest1etape").Cells(ligne, 1)

classe = Sheets("Ouest1etape").Cells(ligne, 2)

Set Plage = Nothing

For Each Cel In Range("B1:B" & [B3000].End(xlUp).Row)

If Cel.Value = ecole And Cel.Offset(0, 2).Value = classe Then

If Plage Is Nothing Then

Set Plage = Range(Cel.Offset(0, 0), Cel.Offset(0, 56))

Else

Set Plage = Union(Plage, Range(Cel.Offset(0, 0), Cel.Offset(0, 56)))

End If

End If

Next Cel

Plage.Select

Selection.Copy

'***** retour dans le fichier de compilation

Workbooks("effet-meta.xlsm").Activate

Sheets("provenance gpi").Select

Range("G7") = ecole

Range("H7") = classe

Range("A9").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Merci

14exemple.xlsx (14.45 Ko)

bonjour

une solution à tester

  • créer un TCD dans ton fichier de lecture, basé sur la grande liste du fichier d'origine
  • utiliser les filtres que tu veux dans ton TCD
  • copier le TCD
  • aller sur une seconde feuille et faire Collage Spécial Valeurs

teste d'abord la méthode

ensuite tu l'enregistre en macro

rem : est-il vraiment nécessaire de figer les valeurs lues et traitées ?

Ouais

Merci pour ton idée. En fait, mon fichier excel devra aller lire dans 5 fichiers fermés différents. Il faut aussi que je ne copie que les résultats parce que le fichier d'origine sont "connecté" sur une base de donnée à laquelle je ne suis pas toujours en lien (quand mon ordi est au travail, tout va bien, mais à la maison, je n'ai pas de vpn. Et lorsque je copie normalement, mon nouveau fichier essaie de se synchroniser et je ne veux pas ça, c'est pourquoi j'ai besoin seulement des valeurs.

Merci mais j'ai besoin d'un code vba qui va lire dans le fichier fermé.

alors ma suggestion en 4 étapes enregistrée en macro devrait fonctionner

à l'ouverture chez toi, Excel va demander d'accéder au fichier source, tu annules ce message.

et tu utilises les données copiées Valeur.

Rechercher des sujets similaires à "copier coller conditions fichier ferme"