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

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 !

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,
 
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:
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+
 
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,
 
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+
 
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
 
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+
 
- 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
4
Affichages
109
Retour