Déplacement de classeur avec condition

  • Initiateur de la discussion Initiateur de la discussion pheonix00fr
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

pheonix00fr

Guest
Bonjour a tous, je ne suis pas calé en macro et j'ai un souci avec celle qui suit, je l'ais trouvé sur le net cela correspond a ce que je voudrais faire mais quand je la lance il y a une erreur, si quelqu'un peut m'aider, merci



Private Sub Worksheet_Change(ByVal sel As Range)
If Not Intersect(sel, [E:E]) Is Nothing Then
If sel.Value = "Y" Then
FileCopy Cells(sel.Row, "B").Value & "\" & Cells(sel.Row, "A").Value, _
Cells(sel.Row, "C").Value & "\" & Cells(sel.Row, "A").Value
End If
End If
End Sub


A nom du classeur
B emplacement de départ
C emplacement de destination
 
Re : Déplacement de classeur avec condition

Salut Phoenix00fr,

En utilisant des variables tu peux t'assurer si les valeurs récupérées sont bonnes

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal sel As Range)
  Dim WbkName As String
  Dim VPathS As String, VPathD As String
  Dim VSource As String, VDestination As String
  ' A nom du classeur
  ' B emplacement de départ
  ' C emplacement de destination
  If Not Intersect(sel, [E:E]) Is Nothing Then
    If sel.Value = "Y" Then
      WbkName = Cells(sel.Row, "A").Value
      VPathS = Cells(sel.Row, "B").Value
      ' S'assurer de l'anti-slash de fin
      If Right(VPathS, 1) <> "\" Then VPathS = VPathS & "\"
      VPathD = Cells(sel.Row, "C").Value
      ' S'assurer de l'anti-slash de fin
      If Right(VPathD, 1) <> "\" Then VPathD = VPathD & "\"
      VSource = VPathS & WbkName
      VDestination = VPathD & WbkName
      FileCopy VSource, VDestination
    End If
  End If
End Sub

A+
 
Re : Déplacement de classeur avec condition

Merci pour ta réponse, j'ai surement loupé quelque chose, après avoir intégré la macro, si je met "Y" dans la cellule il ne se passe rien, si je lance la macro, j'ai une erreur de compilation?????
 
Re : Déplacement de classeur avec condition

Re,

Ok yes 😉
Le code que je t'ai donné, ce met dans "Feuil1" et non dans un module

Et tu ne dois mettre que le code que je t'ai donné en plus de celui qui existe déjà

Par contre il semble manquer les cellules contenant le reépertoire source et celui de destination

Voir fichier joint

A+
 

Pièces jointes

Re : Déplacement de classeur avec condition

Merci, oui je ne suis pas très calé 😛
J'ai encore un souci pour le nom du classeur, je voudrai qu'il utilise celui marqué sur la même ligne (en "B") que celle ou je marque Y pour lancer le déplacement.
 

Pièces jointes

Re : Déplacement de classeur avec condition

Re,

Désolé, mais tu as la réponse dans le fichier que j'ai joint précédemment 😕

Je ne comprends pas !?

De plus l'utilisation de
Code:
VPathS = Cells(sel.Row, "c:\temp\").Value
N'est absolument pas correcte 😕
Puisque l'utilisation est : Cells(Ligne,Colonne)

A défaut de comprendre, essaye d'utiliser les codes que l'on te donne 🙄
 
Re : Déplacement de classeur avec condition

Et bien si je met WbkName = Cells(sel.Row, "&B5&").Value ou
WbkName = Cells(sel.Row, "DDE090011.xls").Value
Quand je saisie le Y "j'ai "erreur d'execution 13"
 
Re : Déplacement de classeur avec condition

Désolé j'ai été trop vite pour répondre je n'avais pas vu la fin de ton post
Dans ses conditions le code ne correspond vraiment a ce que je voudrais.

Je voudrais quand je met "Y" dans une cellule de la colonne H,
que le classeur spécifier en colonne B de la même ligne soit déplacé dans un autre dossier,
le dossier de départ et celui de destination sont toujours les mêmes.
 
Re : Déplacement de classeur avec condition

Bonjour à tous, après une bonne nuit les idées sont plus claire, j'ai crée les adresse dans les cellules pour la source et la destination des classeurs, j'ai aussi ajouté la ligne "Kill VSource" pour effacer le classeur dans le dossier source, merci BrunoM45 pour ton aide.
Serrait il possible d’ajouter un commande pour que quand je lance la macro avec le bouton "mise a jour de la base" la colonne "H" contenant les commandes de validation pour les transferts de classeur soit mise a zéro?
 
Re : Déplacement de classeur avec condition

Salut Phoenix00fr,

Bonjour à tous, après une bonne nuit les idées sont plus claire
C'est bien pour ça que je ne t'ai pas répondu hier 😉😛

Serrait il possible d’ajouter un commande pour que quand je lance la macro avec le bouton "mise a jour de la base" la colonne "H" contenant les commandes de validation pour les transferts de classeur soit mise a zéro?
Oui, mais quel ton code à l'heure actuelle ?

Puisque apparemment tu n'utilises plus "Worksheet_Change"

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
918
Réponses
8
Affichages
792
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
459
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour