recherche d'une ligne en fonction de la cellule d'une autre fichier

NicolasAircelle

XLDnaute Nouveau
Bonjour,

je suis entrain de réaliser un fichier de base de donnée pour des valeurs de contrôles.

Le Fichier A est remplis par les opérateurs en phase 10.
Le Fichier B est remplis par les opérateurs en phase 20.
Le point commun de ces deux fichiers est le numéro d'OF (Ordre de fabrication).
Un bouton permet au opérateur d'envoyer les donnés des fichier A et B dans un fichier C qui sert de base de donnée.
Le fichier A me créer une ligne dans le fichier C avec en colonne A le numéro d'OF.

mon problème est le suivant:
Je veux que la macro du Fichier B me colle les valeurs dans la ligne du fichier C correspondant au numéro d'OF inscrit en colonne A.

Pour faciliter l'aide nous appelleront les cellules contenant le n°OF de cette manière: NoLancement

Je précise que je débute sur VBA, j'ai eu une formation de 2 jours il y a peu, je n'ai pas encore eu le temps d'assimiler toutes les fonctionnalités.


Merci, de votre aide,

Cordialement,
 

job75

XLDnaute Barbatruc
Re : recherche d'une ligne en fonction de la cellule d'une autre fichier

Bonjour NicolasAircelle, bienvenue sur XLD,

Ne sachant pas quand et comment vous alimentez le fichier "C" on va commencer doucement.

Si comme vous le dites NoLancement est la cellule source :

Code:
Dim NoLancement As Range, lig As Variant
With Workbooks("C").Sheet(1) 'fichier et feuille à adapter
  lig = Application.Match(NoLancement, .Columns(1), 0)
  If IsNumeric(lig) Then NoLancement.EntireRow.Copy .Cells(lig, 1)
End With
A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : recherche d'une ligne en fonction de la cellule d'une autre fichier

Re,

Si l'on veut seulement copier les valeurs :

Code:
Dim Ncol As Integer, NoLancement As Range, lig As Variant
With Workbooks("C").Sheet(1) 'fichier et feuille à adapter
   Ncol = NoLancement.Parent.UsedRange.Columns.Count
   lig = Application.Match(NoLancement, .Columns(1), 0)
   If IsNumeric(lig) Then .Cells(lig, 1).Resize(, Ncol) _
     = NoLancement.EntireRow.Resize(, Ncol).Value
End With
Sur un grand nombre de cellules l'exécution sera nettement plus rapide.

A+
 

NicolasAircelle

XLDnaute Nouveau
Re : recherche d'une ligne en fonction de la cellule d'une autre fichier

Bonjour,

Désolé du retard de réponse, j'étais en déplacement.
J'ai une erreur "9" L'indice n'appartiens pas à la sélection, quand il arrive sur With workbooks.


J'ai bien rentré ceci:
Avec "C" = Suivi PRID-LIC Front Trent et feuille 1 du fichier C: Suivi PRID LIC.

Dim Ncol As Integer, NoLancement As Range, lig As Variant
With Workbooks("Suivi PRID-LIC Front Trent").Sheet("Suivi PRID LIC") 'fichier et feuille à adapter
Ncol = NoLancement.Parent.UsedRange.Columns.Count
lig = Application.Match(NoLancement, .Columns(1), 0)
If IsNumeric(lig) Then .Cells(lig, 1).Resize(, Ncol) _
= NoLancement.EntireRow.Resize(, Ncol).Value
End With

cordialement,
 

job75

XLDnaute Barbatruc
Re : recherche d'une ligne en fonction de la cellule d'une autre fichier

Bonjour,

Lors de l'exécution de ce code le fichier doit être ouvert.

La macro peut ouvrir elle-même le fichier s'il est fermé, nombreux exemples sur le forum.

A+
 

NicolasAircelle

XLDnaute Nouveau
Re : recherche d'une ligne en fonction de la cellule d'une autre fichier

Bonjour,

Solution trouvé! avec du mal, mais sa marche niquel!

Dim FichierSuivi As Workbook

Dim shSuivi As Worksheet
Dim NoLancement As Long
Dim rngColOf As Range
Dim i As Integer
Dim nom As String

NoLancement = ActiveSheet.Range("NoLancement")
nom = ActiveSheet.Range("NoLancement") & ".xls"

' lngNumLancement = Workbooks(nom).Cells(7, 7).Value
Set Fichiermesure = Workbooks(nom).Sheets("Feuille de relevé")
Set FichierSuivi = Workbooks.Open(Filename:="R:\Direction Industrielle\Tuyeres\IS\METHODES\PROJETS\Remplacement Photo\process de contrôle\Modèle fichier de contrôle\Fichier présentation fonctionnement\Suivi PRID-LIC Front Trent.xls")
Set shSuivi = FichierSuivi.Worksheets("Suivi PRID LIC")



For i = 3 To shSuivi.Range("A3").End(xlDown).Row
If shSuivi.Cells(i, 1).Value = NoLancement Then Exit For
Next i
 

job75

XLDnaute Barbatruc
Re : recherche d'une ligne en fonction de la cellule d'une autre fichier

Bonjour NicolasAircelle,

Bravo et vous avez noté que j'avais laissé passer une coquille :

With Workbooks("C").Sheet(1) alors qu'il faut bien sûr With Workbooks("C").Sheets(1)

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote