Bonjour le Forum,
Je tente de me former sur les bases de VBA, l'université ne dispensant aucun cours d'informatique !
Voilà mon problème,
Sur la première page j'ai une première colonne comportant deux grands types d'écritures, soit par exemple :
Bonfication Nom Prénom XX
Paiement Nom Prénom XX
Etc.
(XX réfère à des informations qui sont différentes et souvent incomplète comme l'adresse postale ou la date de transaction)
Cette colonne comporte environ 600 cases remplies.
J'ai une deuxième page; avec
Pour environs 1000 personnesC1 C2 C3 C4 C5 C6 C7 C8 Nom Prénom Date de naissance Nationalité Adresse Code postale Ville Pays
Mon objectif est de créer un code qui identifie la personne (de la page 1), pour coller à coté de l'écriture de bonification ou paiement, la ligne d'information sur le client (présent sur la page deux)
Voici le bout de code que j'ai fait, mais sans grande réussite; je pense que la recherche n'est pas partielle.
Avec mes remerciements pour vos éclairages et conseils!
N'hésitez pas si vous aviez des questions si je ne suis pas clair.
Excellente soirée,
Elie
Problème actuel :
variable objet ou variable de bloc with non définie
Code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Option Explicit Sub Cherche() 'déclaration des variables : Dim Valeur_Cherchee As String, Trouve As String Dim i As Long Dim J As Long Dim K As Long '********* à adapter *********** 'affectation de valeurs aux variables : 'on cherche le mot "" For J = 1 To 1000 Valeur_Cherchee = Feuil4.Cells(J, 1) 'dans la première colonne de la feuille active 'Set PlageDeRecherche = ActiveSheet.Columns(2) '******************************* Feuil5.Activate 'méthode find, ici on cherche la valeur non exact (LookAt:=xlPart)k=Lignes Trouve = Feuil5.Cells.Find(what:=Valeur_Cherchee, after:=ActiveCell, LookIn:= _ xlFormulas, lookat:=xlPart, searchorder:=xlByRows, searchdirection:= _ xlNext, MatchCase:=False, searchformat:=False).Activate Selection.FindNext(after:=ActiveCell).Activate K = ActiveCell.Row For i = 1 To 10 Feuil4.Cells(J, i + 1) = Feuil5.Cells(K, i) Next i Next J End Sub
Partager