Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recherche et remplace (ou presque)

Fredox

XLDnaute Occasionnel
Bonjour,

J'ai besoin d'un petit coup de main:
Sur une feuille (sh2) j'ai un numéro de compte en colonne A, un indice en B
Sur ma feuille (sh1) j'ai la le numéro de compte, je voudrais une macro pour:
Renseigner l'indice en Sh1 selon celui qui se trouve sur sh2

Possible d'avoir un coup de main ?
Merci
 
Dernière édition:

Fredox

XLDnaute Occasionnel
Bonjour Staple1600,

Oui; c'est bien la piste que j'ai creuser, je bloque sur ce code depuis un moment. Ca a marché (en partie un moment) mais j'en peu plus:

VB:
Sub Test3()

Dim DL As Long
DL = Worksheets("ANGLI_Liste").Cells(Rows.Count, 2).End(xlUp).Row

Dim DL2 As Long
DLL = Worksheets(1).Cells(Rows.Count, 7).End(xlUp).Row

Dim i As Long

For i = 6 To DL2
Worksheets(1).Range("A:" & DL2) = Application.VLookup(Worksheets(1).Range("G:" & DL2), Worksheets("ANGLI_Liste").Range("B2:D" & DL), 3, 0)
Next i

End Sub

Une idée ?

Merci
 

Fredox

XLDnaute Occasionnel
Re,

J'ai réussi, suivi ta recommandation, merci.
J'ai un problème: Si ma valeur en "A" n'existe pas dans _BAZE, alors j'ai un #N/A.
Pas possible de tester avant, avec une fontion IF ?

VB:
With Application
    .ScreenUpdating = False
    For I = 6 To sh1.Range("G" & Rows.Count).End(xlUp).Row
    sh1.Cells(I, "A") = .VLookup(sh1.Cells(I, "G"), [_BAZ2], 3, 0)
       Next
End With

Merci
 

Fredox

XLDnaute Occasionnel
Bonjour,

J'ai ajouter la fonction Countif à mon
Code:
Sub Test()

Dim sh1 As Worksheet, sh2 As Worksheet, I&, J&
Set sh1 = Worksheets(1): Set sh2 = Worksheets("ANGLI_Liste")

sh2.Activate

Dim DL As Long
DL = sh2.Cells(Rows.Count, 2).End(xlUp).Row

sh2.Range("B2:D" & DL).Name = "_BAZ2"



With Application
    .ScreenUpdating = False
    For I = 6 To sh1.Range("G" & Rows.Count).End(xlUp).Row
    If WorksheetFunction.CountIf([_BAZ2], sh1.Cells(I, "G")) > 0 Then
    sh1.Cells(I, "A") = .VLookup(sh1.Cells(I, "G"), [_BAZ2], 3, 0)
    End If
    Next
End With
code:

Cela génère une erreur ici
Code:
: Set sh2 = Worksheets("ANGLI_Liste")

Je ne comprends pas
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Fredox

Fredox
Le confinement a cela de bien qu'il permet au demandeur d'avoir plus que le temps de concocter un beau classeur exemple bien comme il faut
(C'est à dire sans données confidentielles, suffisamment détaillé et représentatif de la problématique rencontrée)
Mais peut-être n'es-tu pas confiné?
Dans ce cas, tu as quand même le temps nécessaire pour joindre un fichier moins chiadé
En attente donc de ce fichier, puisque moi qui suis confiné, j'ai le temps d'attendre
 

Fredox

XLDnaute Occasionnel
Re,
Oui, confiné, en congés, et bientôt chômage partiel.... du coup ca me donne le temps de finaliser un outil de reporting afin de travailler avec des exportations de SAP pour suivre l'activité.

Compliquer de sortir un fichier moins chiadé... mais c'est bon, j'ai finalisé:

VB:
With Application
    For l = 6 To ShPACO.Range("G" & Rows.Count).End(xlUp).Row
    If WorksheetFunction.CountIf([_BAZ2], ShPACO.Cells(l, "G")) > 0 Then    ' La conction si (je recherche si G** présente dans mon tableau (gestionnaire de nom), pour eviter de rechercher une valeur qui n'existe pas, et eviter le #N/A)
    On Error Resume Next                                                    ' Pas sur que se soit utile du coup puisque j'évite les erreur avec la fonction si
    ShPACO.Cells(l, "B") = .VLookup(ShPACO.Cells(l, "G"), [_BAZ2], 2, 0)
    End If
    Next
End With

Je pense que mon erreur de ce matin venait de ma feuille ou le classeur qui était protègée.


Merci encore
 

Discussions similaires

Réponses
5
Affichages
464
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…