Problème de variable
Bonjour,
Je patauge depuis ce matin sur un bout de code sans trouver de solution.
Le but est de vérifier dans un premier temps que certains champs de la ligne active ne soit pas vide, puis de rechercher dans un dossier s'il y a une occurrence par rapport à la valeur d'une cellule pour trouver un dossier, et à l'intérieur de ce dossier, copier un fichier en le renommant vis à vis de certains champs.
Actuellement cela bloque sur la vérification des champs. Je ne comprends pas pourquoi car j'utilise déjà ce code sur ma feuil1 avec succès.
Info : Ma Feuil2 s'appelle Liste Affaires
ACR a bien la bonne valeur, par contre Feuil2.Cells(ACR, 3), Feuil2.Cells(ACR, 5) et Feuil2.Cells(ACR, 7) sont toujours detectés comme vide.
Voici le code :
Sub Copie_fichier()
' Copie_fichier Macro
' Copie du fichier Devis modèle pour une nouvelle affaire
Dim fs1 As Object
Dim stRep As String
Dim stFichier As String
With Feuil2
ACR = ActiveCell.Row
If Feuil2.Cells(ACR, 3) = "" Or Feuil2.Cells(ACR, 5) = "" Or Feuil2.Cells(ACR, 7) = "" Then
MsgBox ("Selectionnez une ligne valide")
Else
stRep = "C:\Users\Lou\Google Drive\Projets\"
stFichier = Dir(stRep & "*" & ThisWorkbook.Sheets("Liste Affaires").Cells(ACR, 5) & "*")
If stFichier <> "" Then
MsgBox "Fichier trouvé : " & vbCrLf & stRep & stFichier
Else
MsgBox "Pas de fichier avec filtre : " & "*" & ThisWorkbook.Sheets("Liste Affaires").Cells(3, 6) & "*"
End If
'If "Liste Affaires".Cells(AC1, 3) = "" Then
' quoi = .Cells(AC1, 2) & " - " & .Cells(AC1, 9) & " " & .Cells(AC1, 11) & " " & .Cells(AC1, 10) & " - " & .Cells(AC1, 7)
'Else
' quoi = .Cells(AC1, 2) & " - " & .Cells(AC1, 3) & " - " & .Cells(AC1, 7)
'End If
'If (Dir("C:\Users\Lou\Google Drive\Projets\" & quoi, vbDirectory)) <> "" Then
' MsgBox ("Le dossier existe déjà !")
'Else
' Set fs1 = CreateObject("Scripting.FileSystemObject")
' fs1.CopyFolder "C:\Users\Lou\Google Drive\Projets\_Création\Nouveau_client", "C:\Users\Lou\Google Drive\Projets\"
' Name "C:\Users\Lou\Google Drive\Projets\Nouveau_client" As "C:\Users\Lou\Google Drive\Projets\" & quoi
' MsgBox ("Le dossier " & quoi & " a bien été crée")
' End If
End If
End With
End Sub
Bonjour
Pour comprendre un peu plus ton fichier va être indispensable (à moins qu'un autre membre t'apporte la solution)
Moi j'ai une question
Quand tu lances la macro, tu es bien dans page "Liste Affaires" ?
A suivre
Bonjour,
Oui, je suis bien dans le bon onglet.
Voici mon fichier :
Merci !
Bonjour
Caindymion a écrit :Info : Ma Feuil2 s'appelle Liste Affaires
Pas dans le fichier que tu as fourni
C'est Feuil3 qui est le CodeName de la feuille "Liste Affaires"
Tu peux simplifier un peu le code
Sub Copie_fichier()
' Copie_fichier Macro
' Copie du fichier Devis modèle pour une nouvelle affaire
Dim fs1 As Object
Dim stRep As String
Dim stFichier As String
With Feuil3
ACR = ActiveCell.Row
MsgBox .Cells(ACR, 5)
If .Cells(ACR, 5) = "" Or .Cells(ACR, 7) = "" Or .Cells(ACR, 3) = "" Then
MsgBox ("Selectionnez une ligne valide")
Else
stRep = "C:\Users\Lou\Google Drive\Projets\"
stFichier = Dir(stRep & "*" & .Cells(ACR, 5) & "*")
If stFichier <> "" Then
MsgBox "Fichier trouvé : " & vbCrLf & stRep & stFichier
Else
MsgBox "Pas de fichier avec filtre : " & "*" & .Cells(3, 6) & "*"
End If
'If "Liste Affaires".Cells(AC1, 3) = "" Then
' quoi = .Cells(AC1, 2) & " - " & .Cells(AC1, 9) & " " & .Cells(AC1, 11) & " " & .Cells(AC1, 10) & " - " & .Cells(AC1, 7)
'Else
' quoi = .Cells(AC1, 2) & " - " & .Cells(AC1, 3) & " - " & .Cells(AC1, 7)
'End If
'If (Dir("C:\Users\Lou\Google Drive\Projets\" & quoi, vbDirectory)) <> "" Then
' MsgBox ("Le dossier existe déjà !")
'Else
' Set fs1 = CreateObject("Scripting.FileSystemObject")
' fs1.CopyFolder "C:\Users\Lou\Google Drive\Projets\_Création\Nouveau_client", "C:\Users\Lou\Google Drive\Projets\"
' Name "C:\Users\Lou\Google Drive\Projets\Nouveau_client" As "C:\Users\Lou\Google Drive\Projets\" & quoi
' MsgBox ("Le dossier " & quoi & " a bien été crée")
' End If
End If
End With
End Sub
Merci, l'erreur venait du fait que je ne cherchait pas dans la bonne feuille...
Je me doutait que c'était simple mais impossible de trouver, encore merci !