Microsoft 365 import fichier fermé sous condition

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir à toutes et à tous,

J'ai besoin d'importer des informations provenant d'un fichier fermé.
Le contexte
Dans le même dossier j'ai :
1 classeur "Clients" qui contient les informations à importer,
1 classeur "test_adrMail" qui reçoit les informations
Pour faire mes importations j'utilise la code de Pierre - tatiak (encore merci à toi) qui fonctionne nickel.

Le besoin
Toutefois, dans le cas qui me préoccupe, j'ai besoin de faire ces importations sous condition :
- Pour les N° dans fichier Clients feuille "Données"- col"B"
- qui correspondent aux N° fichier test_adrMail feuille "Mails_Clients"- col"D"
Import adresses mails Clients feuille "Données"- col"A" dans fichier test_adrMail feuille "Mails_Clients"- col"C"

J'ai tenté mais je ne sais pas faire :mad:
Pourriez-vous m'aider ?
Je joins les fichiers tests.

Avec mes remerciements,
Je vous souhaite à toutes et à tous une douce nuit,
lionel
 

Pièces jointes

  • Clients.xlsm
    39 KB · Affichages: 21
  • test_adrMail.xlsm
    28.5 KB · Affichages: 9
Dernière édition:
Solution
Allons Lionel, ni la solution de Jacky67 ni la mienne du post #5 ne conviennent.

En effet les liens hypertextes d'origine ne sont pas copiés.

Pour qu'ils soient copiés il n'y a pas d'autre solution que d'ouvrir le fichier source :
VB:
Sub test_import()
Dim chemin$, fichier$, F As Worksheet, i&, j As Variant
chemin = ThisWorkbook.Path & "\"
fichier = "Clients.xlsm"
If Dir(chemin & fichier) = "" Then MsgBox "Le fichier '" & fichier & "' est introuvable !", 48: Exit Sub
Application.ScreenUpdating = False
Application.EnableEvents = False 'sécurité, désactive les évènements
Application.DisplayAlerts = False 'si le fichier source est ouvert
On Error Resume Next: Workbooks(fichier).Close: On Error GoTo 0 'on le ferme
Set F =...

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Gérard, Jacky67, le Forum,
Bon et beau dimanche à toutes et à tous :)

@Gérard : J'ai testé hier au soir et je confirme (sauf erreur si fatigue trop avancée) que les 3 solutions fonctionnent (fichier source fermé) :)

A moins que j'ai zappé à chaque test une exécution des codes. J'ai testé une bonne dizaine de fois chaque solution en modifiant à chaque test les noms des emails dans le fichier source.
Lionel :)
 

job75

XLDnaute Barbatruc
Bonjour Lionel,

Avec la solution de mon post #14 il y a un lien hypertexte dont on peut voir l'adresse dans l'infobulle en survolant le texte en colonne C.

Avec les solutions des posts #5 et #12 il n'y a pas d'infobulle car pas de lien.

A+
 

job75

XLDnaute Barbatruc
Dans ce fichier (2) on n'utilise pas de bouton pour lancer la macro :
VB:
Private Sub Workbook_Open()
test_import
Me.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
 

Pièces jointes

  • test_adrMail(2).xlsm
    29.5 KB · Affichages: 8
  • Clients.xlsm
    36.8 KB · Affichages: 9

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re Gérard,
Quelle perspicacité ... je suis toujours bluffé :p
Merci à toi pour cette nouvelle version super nickel.
Evidemment ça fonctionne super bien.
Merci_Gerard2.gif

lionel,
 

job75

XLDnaute Barbatruc
Il est logique d'ajouter une Workbook_Activate, le fichier source pouvant être ouvert :
VB:
Dim ouvre As Boolean 'mémorise la variable

Private Sub Workbook_Open()
ouvre = True
test_import
Me.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub

Private Sub Workbook_Activate()
If ouvre Then ouvre = False Else test_import
End Sub
Fichier (3).
 

Pièces jointes

  • test_adrMail(3).xlsm
    28.9 KB · Affichages: 4
  • Clients.xlsm
    36.8 KB · Affichages: 4

Discussions similaires

Réponses
16
Affichages
509

Statistiques des forums

Discussions
312 215
Messages
2 086 322
Membres
103 178
dernier inscrit
BERSEB50