Script pour récupérer des entrées automatiquement et les coller

Bonjour,

Je suis nouveau sur ce forum et nouveau sur Excel... Et dejà je m'apprête à vous poser une question car j'ai besoin d'aide sur une problématique.

Je sais bien combien mon besoin d'aide peut paraître opportun et je vais peut être paraître mal élevé à certain (peut être tous) d'entre vous et à ceux la je vous prie d'accepter mes excuses.. Il est vrai qu'à peine arriver et poser une question dans l'urgence n'ait pas le moyen le plus approprié pour obtenir de la sympathie...

Soyez assurer que j'ai eu beau chercher je n'ai pas trouver de réponses à ma question. Cette question me semble facile d'accès pourtant, la voici:

Je suis en présence de 2 fichiers Excell, l'un est composé de plus de 20 500 lignes et l'autre de 430. Je cherche un script qui permettrait d'automatiser la recherche des 430 éléments du second fichiers dans le premier et de les copier/coller de deux éléments du premier fichier et de les coller dans le fichier de 430 lignes.

Concretement, je dois trouver 430 entrées dans un tableau un tableau de 22 700 lignes et récupérer les données des colonnes C et D correspondantes a chaque entrées de de la colonne B pour les coller dans un autre fichier

2023 04 03 14 20 30 greenshot

J'espère que c'est assez clair, et j'espère qu'une âme charitable saura/pourra m'aider.

Je vous remercie

Bonjour Truman Beric et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum
- Quelques fonctionnalites du forum à connaître

Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)

Merci pour votre participation

Concernant votre demande, vous ne nous dites pas dans quelle colonne est l'info à rechercher ?

Cordialement

Bonjour,

Merci pour votre retour, je ne suis sans doute pas arrivé à m'exprimer assez clairement. Il s'agit des infos en colonnes C et D que je souhaite recolter.TAbleau "A" de 27 700 lignes., tableau "B" a completer, de 470 lignes et dans lequels il faut aller chercher 470 fois les infos des colonnes C et D

Re,

Décidément, nous ne nous comprenons pas

Pour trouver et compléter les informations, il faut bien en rechercher une initialement

Merci de joindre vos fichiers anonymisés pour une meilleure compréhension SVP

Pas besoin des 27.000 lignes, une vingtaine peut suffire

A+

Dans l'onglet il faut récupérer des infos et les implémenter dans les colonnes E et F.

Ces infos sont a aller chercher dans l'onglet colonne C et D . Les information de la Colonne C de l'onglet A doit aller dans E de l'onglet "Feuille1" et les informations colonne "D" de l'onglet "A" doivent aller dans l'onglet "Feuile 1" , colonne F.

Le point d'entrée, le point commun pour remplir un tableau de 470 lignes a partir d'un de 27 000 lignes ce sont les identifiants " 37XXXXXXXXX".

12table-exemple.xlsx (13.27 Ko)

Re,

Le point d'entrée, le point commun pour remplir un tableau de 470 lignes a partir d'un de 27 000 lignes ce sont les identifiants " 37XXXXXXXXX".

Et bien vous voyez quand vous voulez je regarde ça ou un autre contributeur

A+

Je vous remercie ! :)

Re,

Voici le code à mettre dans votre fichier de 430 lignes, il faudra changer le chemin d'accès et le nom du fichier à ouvrir

Sub RecupInfo()
  Dim Wbk As Workbook, Sht As Worksheet
  Dim sPath As String, sFic As String, RefDoc As String
  Dim CelF As Range
  Dim dLig As Long, Lig As Long
  ' Chemin ou se trouve la base avec les 27.000 lignes
  sPath = "C:\Temp\"
  ' Nom du fichier
  sFic = "MaBase.xlsx"
  ' Ouvrir le classeur
  Set Wbk = Workbooks.Open(sPath & sFic)
  ' Définir la feuille 1 comme étant la source
  Set Sht = Wbk.Sheets(1)
  ' Avec la feuille de destination de ce classeur
  With ThisWorkbook.Sheets("Feuil1")
    ' Dernière ligne remplie
    dLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne
    For Lig = 2 To dLig
      RefDoc = .Range("B" & Lig).Value
      ' Rechercher la référence
      Set CelF = Sht.Range("B:B").Find(What:=RefDoc, LookIn:=xlValues, LookAt:=xlWhole, _
        SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
      If Not CelF Is Nothing Then
        .Range("E" & Lig).Value = Sht.Range("C" & CelF.Row).Value
        .Range("F" & Lig).Value = Sht.Range("D" & CelF.Row).Value
      Else
        .Range("E" & Lig).Value = "Non trouvée !"
      End If
    Next Lig
  End With
End Sub

A+

Merci infiniment pour votre aide, j'écris ce code dans l'option "script" ?

Re,

Ce n'est pas du script, mais du code VBA

ALT+F11 pour accéder à VBAProject

Clic droit sur ThisWorkbook -> Insertion -> Module

image

Copier/coller le code dedans

A+

alors la je suis reperdu, pas du tout accès a ca avec alt+F11

Re,

Merci de mettre dans votre profil https://www.excel-pratique.com/fr/compte/forum-profil La version d'Excel utilisé

Sinon : Menu Développeur -> Visual Basic

image

A+

ah ok j'ai pas le menu developeur c'est pour ça ....Excel pour microsoft 365, une version bureau quoi. Désolé :-/

Re,

Non ce n'est pour ça, est-vous sur que le VBA a été installé sur votre PC

Téléchargez ce fichier, puis clis droit dessus -> Propriété et cochez "Débloquer", puis Ok

Ensuite ouvrez le, vous devriez avoir un message

je l'ai bien ouvert mais pas de messages

Re,

Pas de bandeau rouge ou jaune en haut de la fenêtre

nop'

2023 04 03 17 00 00 greenshot

Re,

Donc navré pour vous, mais la DSI de votre société semble interdire le VBA ou a oublié de vous l'installer

Nous ne pourrons rien faire de plus

damn it ! et pourtant ils vont attendre des résultats argfffff c'est pas contournable, je vais devoir me cogner 430 lignes de Ctrl/F Ctrl/c Ctrl/V à la mano ?

Je suis déjà un cas d'école pour vous ^^

Rechercher des sujets similaires à "script recuperer entrees automatiquement coller"