Macro recherheV sans ouvrir le fichier lié

roidurif

XLDnaute Occasionnel
Bonjour,

Comment faire en sorte que dans le fichier de saisie la rechercheV fonctionne sans que second fichier de liaison soit ouvert.

L'idéal serai d'avoir une macro qui s’exécute en validant la saisie d'une donnée, par exemple en utilisant le code Target .

Merci de votre aide.
 

kjin

XLDnaute Barbatruc
Re : Macro recherheV sans ouvrir le fichier lié

bonsoir,
Si la cellule de destination est aussi la cellule saisie (saisie et destination en A1 par exemple)...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
tabSource = "'X:\xxx\xxx\[xxxxx.xls]Feuil1'!$A$1:$B$10"
If Target.Column = 1 Then
    Application.EnableEvents = False
    With Target
        .Formula = "=VLOOKUP(""" & Target & """," & tabSource & ",2,0)"
        .Value = .Value
    End With
    Application.EnableEvents = True
End If
End Sub
....si la cellule de destination est adjacente à la cellule de saisie (saisie en A1, destination en A2 par exemple)..
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
tabSource = "'X:\xxx\xxx\[xxxx.xls]Feuil1'!$A$1:$B$10"
If Target.Column = 1 Then
    With Target.Offset(0, 1)
        .Formula = "=VLOOKUP(" & Target.Address & "," & tabSource & ",2,0)"
        .Value = .Value
    End With
End If
End Sub
...sans oublier de remplacer les paramètres du tableau source et d'adapter la formule
A+
kjin
 

roidurif

XLDnaute Occasionnel
Re : Macro recherheV sans ouvrir le fichier lié

Bonjour,

Merci pour votre proposition, j’ai adapté votre code à mon fichier. J’ai blocage sur la ligne suivante

Code:
.Formula = "=VLOOKUP(" & Target.Address & "," & tabSource & ",2,0)"

puis j'ai essayé cela pareil :

Code:
.Formula = "=VLOOKUP(" & Target.Address(0, 0) & "," & tabSource & ",2,0)"

Es-ce que j’ai oublié quelque chose ?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
tabSource = "'D:\Documents and Settings\abel\Mes documents\3- iProc\7- Extractions\2- Intr@cha\[Extraction USERS LOTUS.xls]Carnet d'adresses'!$A$1:$B$10"
If Target.Column = 1 Then
    With Target.Offset(0, 1)
        .Formula = "=VLOOKUP(" & Target.Address(0, 0) & "," & tabSource & ",2,0)"
        .Value = .Value
    End With
End If
End Sub
 

Pièces jointes

  • Classeur2.xls
    21.5 KB · Affichages: 42
  • Classeur2.xls
    21.5 KB · Affichages: 35
  • Classeur2.xls
    21.5 KB · Affichages: 32

kjin

XLDnaute Barbatruc
Re : Macro recherheV sans ouvrir le fichier lié

Bonjour,
Il faut toujours éviter les espaces, apostrophes, accents et autres fioritures inutiles pour nommer les feuilles excel et utiliser des noms simples, courts et concis , ça évite bien des emm...par la suite !
Ici en l'occurrence, du coup il manque une quote (en rouge)
....
tabSource = "'D:\Documents and Settings\aboulayo\Mes documents\3- iProc\7- Extractions\2- Intr@cha\[Extraction USERS LOTUS.xls]Carnet d''adresses LDE'!$A$1:$B$10"
....
Tu aurais simplement nommé ta feuille Adresses_LDE...mais bon
A+
kjin
 
Dernière édition:

roidurif

XLDnaute Occasionnel
Re : Macro recherheV sans ouvrir le fichier lié

Bonjour kjin,

Merci kjin,

Effectivement, c’était dû à une quote manquante

Cela fonctionne bien lorsque le deuxième fichier en liaison est ouvert, par contre si celui-ci est fermé alors la macro reste bloqué sur la ligne.

.Formula = "=VLOOKUP(" & Target.Address & "," & tabSource & ",2,0)"

En résultat, la macro recherheV sans ouvrir le fichier lié ne fonctionne pas correctement. Peut-être que c'est normal?
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 306
Membres
102 859
dernier inscrit
Diallokass