Eviter une nouvelle importation

Zdz16

XLDnaute Occasionnel
Bonjour à tous et toutes;

J'ai créé un modèle dans lequel, il y a une action d'importation via l'activation d'un bouton qui fait appel à une macro d'importation. L'utilisateur fait appel au modèle via l'option Nouveau/Selection du modèle. Il active l'importation et enregistre le classeur (xlsm).

Ma question est la suivante, comment puis-je interdire une nouvelle importation à partir du classeur ainsi enregistré ?

Je n'ai pas d'idées sur les moyens ou le test à faire via Vba pour réaliser cela.

Cordialement et merci d'avance.
 

Zdz16

XLDnaute Occasionnel
Re : Eviter une nouvelle importation

Salut Job75;

Le classeur enregistré est propre à chaque utilisateur. Ce dernier peut y faire des modifications, mais pas de nouvelle importation (au moins le prévenir que s'il fait une nouvelle importation, il risque de perdre ses modifications et saisies). Car l'importation initialise tous le classeur.

L'idée que j'ai en tête est de mettre dans le classeur, un indicateur dans une cellule protegée (avec un format invisible) et de tester cet indicateur à l'appel de l'importation. Mais cela me parait 'bidouillage' et avec le risque que l'utilisateur bousille l'indicateur.

Cordialement et à te lire de nouveau

Ré-édition : Comme quoi en écrivant on arrive à des solutions possibles

La solution que je vais, probablement mettre en place serait la suivante : Renommer le fichier source de l'importation (en modifiant son extension) ainsi si le nom avec le nouvelle extension existe, c'est que l'importation est déjà faite. Si non on importe les data du fichier, bien sur s'il existe.

A+
 
Dernière édition:

Abel

XLDnaute Accro
Re : Eviter une nouvelle importation

Bonjour zdz16, job75,

Si je comprends bien, le nouveau classeur est créé en faisant une copie et donc avec le code du modèle.
Pourquoi ne pas essayer d'inclure une instruction d'effacement (kill je crois) du code en fin d'importation dans le nouveau fichier.
Cà posera peut être des problèmes avec la politique de sécurité de ton ordi. J'ai eu le cas il y a quelques années.

Sinon, supprime le bouton d'envoi de la macro sur le nouveau fichier.

Abel.
 

Zdz16

XLDnaute Occasionnel
Re : Eviter une nouvelle importation

Bonjour Abel;

Oui c'est envisageable. Dans ce cas, si utilisateur veux restaurer les données initiales, il doit repartir du modèle, pourquoi pas. Toutefois, l'importation n'est qu'une partie de la fonction du ce modèle (il Contient d'autres fonctionnalités comme l'exportation après validation, la génération de synthèses en TCD, de la saisie et des calculs via du Vba).

Cordialement et merci pour l'idée.
 

Efgé

XLDnaute Barbatruc
Re : Eviter une nouvelle importation

Bonjour Zdz16, Abel, Salut Job
Une idée :
Créer un nom caché, invidsible das le gestionnaire de nom ce qui évitera que l'utilisateur le supprime "par erreur :rolleyes:".
Puis vérifier si le nom existe avant l'import.

Ce qui donne:
VB:
Sub Macro3()
Dim Nm As Name
For Each Nm In ActiveWorkbook.Names
    If Nm.Name = "Fait" Then Exit Sub
Next Nm
ActiveWorkbook.Names.Add Name:="Fait", RefersToR1C1:=" ", Visible:=False
End Sub

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg