Enregistrer/sous, fermer, rouvrir, copier/coller des colonnes... [Résolu]

13Hubert

XLDnaute Junior
Bonjour le forum,

J'ai un fichier que j'ai appelé "N" avec 3 colonnes "N", "N-1" et "N-2" qui contiennent chacune des données.

Je tente de créer une procédure VBA qui mènerait les actions suivantes :

Après un blabla à destination de l'utilisateur...

1/ par sécurité, enregistrer les dernières modifications apportées à "N",
2/ enregistrer mon fichier sous "N-1" en lecture seule recommandée,
3/ fermer "N-1",
4/ rouvrir "N",
5/ remplacer les données de la colonne "I" par les données de la colonne "H"
6/ remplacer les données de la colonne "H" par les données de la colonne "G"
7/ supprimer les données de la colonne "G"

Mais visiblement, ça merdouille à plusieurs endroits :

- pourquoi le fichier "N-1" est créé dans le dossier "Mes documents", alors que "N" est dans un dossier "Travail", sur mon bureau ? Je pensais qu'en ne spécifiant rien, le fichier serait créé dans le dossier initial de "N"...

- lorsque la procédure arrive à la réouverture de "N", celui-ci est introuvable et ça plante. Pourquoi ? Est-ce parce-qu'il est recherché dans "Mes documents" ? Dans ce cas, comment dire à VBA d'aller le chercher là où il était au début, c'est à dire dans mon dossier travail ?

- Si "N-1" existe déjà, si je réponds "Non" ou "Annulé" à la sollicitation de l'écraser, ça bugue...


Voilà où j'en suis après un mal de tête carabiné ! :confused:

Certes, après que mes premiers problèmes soient réglés et que j'aie compris pourquoi, l'idéal et la finalité serait pour moi :

- dans ma procédure, aller chercher le nom initial du fichier (à la place de "N") car chaque utilisateur (12 utilisateurs !) a hélas nommé son ficher à SA convenance, et tous ne s'appellent plus "N"...

- pouvoir user d'une Msgbox pour que l'utilisateur puisse choisir le dossier et le nom du fichier d'enregistrement à la place de "N-1".

Alors c'est sur, si vous pouvez m'aider pour tout, ce serait génial. Mais déjà je serais vraiment ravi de comprendre pourquoi ce que j'ai fait jusqu'à présent plante !


Merci à tous pour votre aide.

PS : Ce coup-ci, je daigne mettre un fichier exemple... :)
 

Pièces jointes

  • N.xls
    36.5 KB · Affichages: 46
  • N.xls
    36.5 KB · Affichages: 49
  • N.xls
    36.5 KB · Affichages: 50
Dernière édition:

titiborregan5

XLDnaute Accro
Re : Enregistrer/sous, fermer, rouvrir, copier/coller des colonnes... Ca marche pô :(

Bonjour Hubert, le forum,

essaie .Path pour avoir le dossier de ton fichier actif...
je pense que tu pourras du coup enregistrer où tu veux et récupérer tes fichiers...

Il te faut aussi une gestion des erreurs ou du moins cacher l'alerte (application.displayalerts=false et tu réactives à la fin TRES IMPORTANT (=true) )

Pour les noms de fichiers différents, peut-être qu'avec le caractère joker * ça marche?

Bon courage!
 

MJ13

XLDnaute Barbatruc
Re : Enregistrer/sous, fermer, rouvrir, copier/coller des colonnes... Ca marche pô :(

Bonjour Hubert, titi

lorsque la procédure arrive à la réouverture de "N", celui-ci est introuvable et ça plante. Pourquoi ? Est-ce parce-qu'il est recherché dans "Mes documents" ? Dans ce cas, comment dire à VBA d'aller le chercher là où il était au début, c'est à dire dans mon dossier travail ?

Je ne suis pas pour faire tout le boulot. Mais pour le chemin, tu peux à un moment déclarer le dosssier et le reprendre dans ton enregistrement en variable. De plus je te conseille de le mettre en variable Public en tête de module:

ex:

Code VBA:
Public Dossier as string
Sub MaProcédure
Dossier = "C:\MonChemin"
.......
End Sub
 

13Hubert

XLDnaute Junior
Re : Enregistrer/sous, fermer, rouvrir, copier/coller des colonnes... Ca marche pô :(

Haa !! Ca y est ! Ca fonctionne !
Je me suis aidé de ce que vous m'avez dit et ça m'a mis sur la voie.
J'ai gratté dans le net et j'ai trouvé de quoi me satisfaire.
Je vous joins mon fichier modifié pour avoir votre avis...mais aussi pour que vous m'aidiez à continuer dans ma tâche SVP - sans faire le travail à ma place, tu as raison, MJ13 ! ;)

Maintenant, y-a un autre truc qui ne se fait pas...

Je me retrouve bien dans le bon fichier après que la copie a été faite.
Mais la procédure suivante (copie et collage des colonnes "G", "H" et "I") ne se fait pas. Pourtant, lorsque je place ce code tout seul dans un module (Sub TEST) , ça fonctionne !

Help me more please ! :)

Merci encore à tous.
 

Pièces jointes

  • N.xls
    34 KB · Affichages: 40
  • N.xls
    34 KB · Affichages: 57
  • N.xls
    34 KB · Affichages: 60

stefan373

XLDnaute Occasionnel
Re : Enregistrer/sous, fermer, rouvrir, copier/coller des colonnes... Ca marche pô :(

Bonjour 13Hubert, le fil et le forum,

Sans tout comprendre, peut-être en supprimant ces lignes de codes. :confused:

Code:
'Workbooks.Open Filename:=cheminall
    'Windows("N-1.xls").Activate
    'ActiveWorkbook.Close

A+ Stéfan
 

13Hubert

XLDnaute Junior
Re : Enregistrer/sous, fermer, rouvrir, copier/coller des colonnes... Ca marche pô :(

Bonjour Stefan373,

En fait, ma volonté est de rouvrir le fichier dont le nom et le chemin est contenu dans la variable "cheminall", puis de fermer N-1.
J'avais fait l'inverse mais après la fermeture de N.1, ben...tout s'arrêtait et N.xls n'était jamais ouvert ! :)
J'ai simplifié en changeant par :

Workbooks.Open Filename:=cheminall
Windows("N-1.xls").Close

Mais peut-être que ce que j'ai écrit n'est pas correct !

Toutefois, le code à la suite de ces fonctions ne se lance pas ! :/
 

13Hubert

XLDnaute Junior
Re : Enregistrer/sous, fermer, rouvrir, copier/coller des colonnes... Ca marche pô :(

Bonjour Stephan,
Bonjour le forum,

Voilà si j'ai bien compris votre demande. :)

Oui !! Vous(tu) avez(as) bien compris ma demande, et surtout...bien aidé !
J'ai modifié 2 ou 3 petits détails mais ça fonctionne !!
Merci beaucoup à vous(toi) et à tous également, ça m'a bien aidé et surtout permis de bien comprendre certaines choses obscures. :cool:

Et comme je suis quelqu'un de gourmand, je vais maintenant m'attacher à trouver comment récupérer, depuis une Msgbox, le nom du fichier à créer dans ma sauvegarde - en lieu et place de N-1
Mais ça fera l'objet d'un autre fil, que j'ouvrirai si j'ai (encore !!) besoin d'aide ! :rolleyes:

Encore merci à tous ;)

Hub
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 230
Membres
103 160
dernier inscrit
Torto