Lecture d'un fichier , Recherche de valeurs et Remplissage

Bonjour ,

Je demande votre aide aujourd'hui car j'ai un problème que je n'arrive pas a resoudre ( qui va surement être basique pour vous )

C'est assez compliqué a expliquer mais je vais essayer.

Je dois faire le remplissage automatique d'un fichier excel , j'ai plusieurs termes à aller chercher qui sont écrite de différente façon.

Avec les termes de ce premier fichier je dois aller voir s'ils existent dans une autre feuille excel qui contient un rapport avec des mesures, je dois avec l'aide des termes ci dessus recupérer les valeurs mini et max de chaque terme pour pouvoir enfin les mettres dans un rapport final.

J'ai selectionner une case qui correspond a l'emplacement de la valeur max qui est sur la colonne L et a gauche du / c'est la valeur mini qui est sur la colonne J.

Je ne sais pas si j'ai été clair dans mes propos , je ne vois pas du tout comment je dois faire , c'est pour cela que je vous demande votre aide.

Merci par avance pour vos réponses.

ps: excusez moi pour les fautes d'orthographe

bonjour

difficile de comprendre

il faut joindre tes fichiers de départ et ton fichier modèle de de ce que tu veux obtenir

combien de lignes as-tu ?

(à l'avenir mets des listes déroulantes dans les cellules de saisie pour fiabiliser ton fichier)

Bonjour ,

Oui je sais que c'est compliqué à comprendre

Je vais essayer d'etre plus clair dans mes dire et vous mettre un bout de code déjà fais

Sur mon image qui comporte plein de nom , les noms en rouge sont les noms qui sont dans un rapport final et pour remplir ce rapport final nous utilisons une machine qui crée des rapport dans lesquels les termes utiliser varie de plusieurs facon , par exemple pour le diamètre tête peut etre écrit de 16 façon différentes sur les rapports de machine et moi il faudrais que lorsque je lis par exemple le rapport 384375 que le programme compare les 2 fichiers ( le rapport et la liste de nom ) et dès qu'il trouve un nom qui correspond il relève les valeurs minimum et maximum

J'ai deja fais un bout de code qui cherche les mots qui sont en commun sans aller ouvrir le fichier avec tout les noms

Voici le code actuel :

Sub importFichierTexte_ADO()

Dim Chemin As String, Fichier As String
Dim i As Long
Dim iFile As Integer
Dim DebutTab As Integer, FinTab As Integer
Dim diam_tete() As Variant
Dim Ligne As Integer

diam_tete = Array("Ø tête", "Ø  tête", "Øtête", "Ø   tête")
diam_fut = Array("Ø fut")
Chemin = "T:\MIS\IT-Projects\Control Dim\"
Fichier = "XPL8BPV0808D rectif627101.csv"
'Fichier = "XPL8BP-V10-15AS-CNSREPORT20150922105112.csv"
'Instanciation du FSO
Set oFSO = New Scripting.FileSystemObject
'Accède au dossier
 If oFSO.fileExists(Chemin & Fichier) Then
    iFile = FreeFile
    Open Chemin & Fichier For Input As #iFile
    'Lecture du 1er fichier et écriture dans Excel
    i = 1
    Do Until EOF(iFile)
        Line Input #iFile, Data

            Cells(i, 1) = Data
            i = i + 1

    Loop
    Close #iFile
    ' Mise en forme
    Columns("A:A").Select
    Range("A43").Activate
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
        ), Array(14, 1)), TrailingMinusNumbers:=True
' cherche valeur maximum pour déterminer la variable ligne
For i = 1 To 500
If Cells(i, 1) = "Valeur maximum" Then
    Ligne = i - 8
    Exit For
End If
Next i
O = 2
'Recherche du diam de tete
Stop
Dim a As Integer
For a = 0 To UBound(diam_tete)
colonne = ChercheValeur(2, 14, Ligne, diam_tete(a))
If (colonne <> "") Then
    Stop
    Sheets(2).Cells(O, 1) = "Diamètre de Tête"
    Sheets(2).Cells(O, 2) = Cells(Ligne + 9, colonne)
    Sheets(2).Cells(O, 3) = Cells(Ligne + 8, colonne)
    Exit For
End If
Next a

O = O + 1
colonne = ChercheValeur(2, 14, Ligne, "Ø mi-fût")
Sheets(2).Cells(O, 1) = "Ø mi-fût"
Sheets(2).Cells(O, 2) = Cells(Ligne + 9, colonne)
Sheets(2).Cells(O, 3) = Cells(Ligne + 8, colonne)
Else
a = MsgBox("Le fichier spécifié est introuvable.", vbOKOnly, "Stop")
End If
End Sub
Function ChercheValeur(Deb As Integer, fin As Integer, Ligne As Integer, valeur As Variant)
For c = Deb To fin
'entre la colonne Deb et la colonne fin
' compare la partie apres ] de cells(ligne,c) avec une valuer de Array
    If Right(Cells(Ligne, c), Len(Cells(Ligne, c)) - InStr(1, Cells(Ligne, c).Value, "]")) = valeur Then
        ChercheValeur = c
        Exit For
    End If
Next c
End Function

Là mon code trouve les valeurs dans un rapport et écrit dans la feuilles 2 ce que je recherche , il faudrais maitenant qu'il ouvre le fichier avec tous les noms et complète le rapport final

Je vais vous mettre les fichiers que j'utilise et le fichier avec la liste de nom

le rapport final est trop lourd pour etre envoyer ( 7,1 Mo )

8nom-keyence.xlsx (15.91 Ko)

re

si tu mets ton dictionnaire (correspondances entre les termes) en tableau en 2 colonnes comme feuille 3, tu peux utiliser des RECHERCHEV pour introduire automatiquement les termes en rouge dans ta feuille de relevés (à côté de la colonne contenant les Øtête et ØTETE etc. ajoute une colonne avec ces RECHERCHEV)

ensuite ton rapport se fait avec un TCD

Bonjour ,

après m'etre creuser la tête j'ai réussis a me débloquer c'etait tous bete , j'ai mis tous les termes dans une feuille du rapport et j'ai fais mon vba dessus , me reste plus qu'a faire depuis un classeur fermé et c'est ok

Merci pour ta reponse

Rechercher des sujets similaires à "lecture fichier recherche valeurs remplissage"