Copie lignes SI de fichier fermé

  • Initiateur de la discussion Initiateur de la discussion Pierre31
  • Date de début Date de début

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 !

P

Pierre31

Guest
Bonjour à toutes et tous,

J'ai 2 fichiers, "Base.xls" qui est ouvert et "Source.xls" qui est fermé et composé de plusieurs feuilles dont la feuille "Planning".
Dans cette feuille "Planning" j'ai un tableau de la forme ci-dessous mais composé d'environ 3000 lignes.


Rev Code Désignation des MATERIELS IPS Curatif (C)
Préventif (P)
x 1 Banc Avitron P
x 1 Banc Bauer P
x 1 Banc AMS Injecteurs C
x 1 Banc Fuel Heater + Oil Cooler I1 P
x 1 Banc Oil cooler cleaning bench P
x 1 Banc Tuyauterie P
x 1 Banc Pneumatique C
x 1 Banc ASSIP P
x 1 Banc Electropneumatique I2 P
x 1 Compresseur Mauguière P
Le but est de recopier dans le fichier ouvert "Base.xls" les lignes entières dans lesquelles l'on trouve dans la colonne "IPS" l'information "I1" ou "I2" et ceci si possible par une procédure VBA qui permette d'effectuer l'opération assez rapidement.

D'avance merci pour vos réponses.
Cordialement
Pierre
 
Re : Copie lignes SI de fichier fermé

Bonjour Pierre,

Difficile sans un extrait de ton tableau source...

Primo: nomme ce tableau source en prévoyant de la place 3500 lignes par ex.

ci dessous un code à tester:
'nécessite bibliothèque ADO. Cocher la référence :
'Microsoft ActiveX Data Object 2.x Library

Dim source As ADODB.Connection
Dim requete As ADODB.Recordset
Dim fichier As String

'on considère que les 2 classeurs sont dans le m^me dossier
fichier = ThisWorkbook.Path & "source.xls"

Set source = New ADODB.Connection
source.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fichier & ";" & _
"extended properties=""Excel 8.0;"""

Set requete = New ADODB.Recordset
'
Set requete = source.Execute("SELECT * FROM nomdetabase WHERE IPS='I2' OR IPS='I2';")
If requete.EOF Then
MsgBox "condition vide..."
Exit Sub
End If

Application.ScreenUpdating = False
Range("B2").CopyFromRecordset requete

Set requete = Nothing
Set source = Nothing
 
Re : Copie lignes SI de fichier fermé

Bonjour Pierre,

Une solution qui evite l'utilisation de bibliothèque externe...

J'ai repris la table indiquée dans ton message au niveau du fichier "Fichier_Ferme.xls" et le fichier "Lecture_Fichier_Ferme.xls" situé dans le même répertoire (mais tu peux facilement changé cela !) permet de récupérer les données souhaitées.

Je met un deuxième message pour le second fichier...

Bonne journée,

Alain
 

Pièces jointes

Re : Copie lignes SI de fichier fermé

Bonjour Michel m et Alain L,

Merci pour vos réponses.
Les 2 solutions fonctionnent trés bien.
Trés gentil à vous deux d'avoir consacré du temps à mon problème.

Bon après-midi
Cordialement
Pierre
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

P
Réponses
3
Affichages
1 K
Papaye
P
Retour