Trouver les fichiers en mode dynamique ?

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

re bon personne pour m'aider ?
bon c'est dimanche soir aussi, bonne soirée tout le monde, moi je reste là encore un moment
 

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

bon ça marche bien une fois mais deux fois ça ne marche plus car les sous-repertoires étant déjà crées, ça pose problème au programme : à chaque fois il veut recréer les ous repertoires que je lui ai indiqué
Tu as une solution simple pour pallier le problème. En fait tu en as plusieurs, je t'en propose une...
Code:
Private Sub CommandButton2_Click()
Dim nomRep, Chemin$
    NomRep = Array("", "Données Excel", "Fiches Excel", "Fiches PDF"[COLOR="Red"])[/COLOR] 'erreur corrigée ")"
    Chemin = Worksheets("Feuil1").Cells(1, 1).Value & "\"
    On error resume next
        For i = 1 to Ubound(NomRep)
            chdir Chemin & NomRep(i)
            mkdir Chemin & NomRep(i)
        Next
    On error goto 0
End Sub
J'explique : Si chdir provoque une erreur, c'est que le répertoire n'existe pas. L'erreur fera passer à la ligne suivante où mkdir le créera.
Si chdir trouve le répertoire, c'est qu'il existe. Mkdir provoquera une erreur qui fera passer à la ligne suivante.
On peut encore simplifier en passant chemin et NomRep(n) comme paramètres à une procédure ne contenant que les deux lignes chdir et mkdir mais commence par là ;)
Je regarde tes autres questions.
@+
 
Dernière édition:

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

merci bcp, j'avais trouvé un remède à ça avec une condition, mais à présent le probleme est résolu ;)
 

MJ13

XLDnaute Barbatruc
Re : Trouver les fichiers en mode dynamique ?

Re bonjour à tous

OK Alucard_xs le problème est résolu mais le fin du fin cela aurait été que tu mettes ton fichier résolu!
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

enfin quand je dis que c résolut, c'est juste pour éviter d'avoir l'erreur sur la cration de repertoires, je ne sais tjrs pas faire ce que je veux, cf mes précedents posts.
 

MJ13

XLDnaute Barbatruc
Re : Trouver les fichiers en mode dynamique ?

Re Bonj

Allez encore une dizaine de pages et ton probème sera RESOLU (tu vas peut-être avoir le record du post le plus long du monde!).
Bon courage.
 

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

Pour le code précédent, si le répertoire existe, le code te placera dans ce répertoire, s'il n'existe pas et est donc créé, tu restes dans le répertoire courant d'avant la procédure. Cela ne présente aucun inconvénient si tu utilises le chemin et le nom du fichier pour ouvrir ou enregistrer un fichier. Donc, n'utilise pas la procédure
Private Sub DéplacementFeuillePlannig()
' Donne le chemin actuel
qui part du répertoire actif et d'une feuille active.
Prends l'habitude tout de suite de ne pas sélectionner ni feuille ni cellule pour travailler dessus. Nomme tes classeurs, tes feuilles et précise tes cellules :
Workbooks("Classeur.xls").Worksheets("FeuilName").Range("A1").value 'ou Cells(NoLigne, NoCol)
En instanciant ton classeur et ta feuille, tu pourras utiliser l'une et l'autre instance dans ton code.
Code:
Dim CL1 as workbooks
Dim FL1 as Worksheet
Set CLI = workbooks("Classeur.xls") 'ou = Thisworkbook -> si c'est le fichier contenant les macros
Set FL1 = CL1.Worksheets("FeuilName")
'Instances que tu peux utiliser ainsi
     LeRep = FL1.Cells(1,1).value
     CL1.saveas ....... -> .pdf
'etc.
alucard_xs a dit:
Au final, j'aurais donc, mon repertoire d:\fichiers avec mes fichiers xcl complets et dans le repertoire d:\fichiers_pdf, que les feuille1 mais en pdf.
Est ce possible ?
Que te manque-t-il pour faire ça ?
Autre chose : Pour enregistrer un xls en pdf, tu penses que tu dois l'ouvrir... Mais là, le xls reste le fichier actif à l'inverse d'un saveas -> autrenom.xls
Dernière question : Tu es sûr que ce code est compatible avec VBA 2003 ?
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Documents and Settings\mimi\dossier\NomClasseur.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Bonne soirée. Je suis obligé de t'abandonner :D
@+
 
Dernière édition:

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

BBOn alors ce que je cherche à faire poru le moment, c'est de copier la feuille 1 d'un fichier excel pris dans le repertoire d:\essai et de la coller dans un document "type" en feuille 3 qui se trouve dans un repertoire d:\essai2, ensuite il me faudrait sauvegarder ce nouveau fichier dans le repertoire d:\essai2
 

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

copier la feuille 1 d'un fichier excel pris dans le repertoire d:\essai et de la coller dans un document "type" en feuille 3 qui se trouve dans un repertoire d:\essai2, ensuite il me faudrait sauvegarder ce nouveau fichier dans le repertoire d:\essai2
Ok alucard, je te passe un code qu'il te faudra adapter.
Code:
Dim CL1 as workbook
Dim CL2 as workbook
    Workbooks("d:\essai\Fichier1.xls").open
    DoEvents
    Set CL1 = ActiveWorkbook
    Workbooks("d:\essai2\FichierType.xls").open
    DoEvents
    Set CL2 = ActiveWorkbook
    CL1.Worksheets("Feuil3").copy After:=CL2.Sheets(CL2.Sheets.count)
    DoEvents
    CL2.Close True 'sauvegarde du fichier Type
    DoEvents
    CL1.Close False 'ferme le fichier d:\essai\Fichier1.xls sans enregistrer
    DoEvents
    Set CL1 = Nothing
    Set Cl2 = NoThing
Censé placer la feuille copiée en fin des feuilles de fichier "Type" (pas testé, si bug alors simple faute d'orthographe ;) )
@+
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

merci mais j'ai un blem sur la ligne

Workbooks("d:\essai\Fichier1.xls").open

L'indice n'appartient pas à la selection
 
Dernière édition:

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

bon c bon par contre j'ai un soucis sur cette ligne :

CL1.Worksheets("Feuil3").copy After:=CL2.Sheets(CL2.Sheets.count)
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

ok c bon par contre il faudrait que ça aille sur la feuille 3 qui porte deja son nom
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

le soucis c'est que mon fichier type possède une feuille (la 3eme) qui se nomme d'une manière imposé (car la feuille 2 l'utilise via des formules)
du coup avec le
Code:
CL1.Worksheets(1).Copy CL2.Sheets(3)
, il me copie toute la feuille de mon doc initial (y compris le nom de la feuille
qu 'il vient mettre en 3eme position donc, ce n'est pas ça tout à fait, moi je veux qu'il me copie les données qui sont présentes sur la feuille 1 du doc initial, sur la feuille 3
du document modifié, et ainsi la feuille 2 pourra fonctionner.
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

SI vous voulez, finalement, ce ne sont que les données présentes de A1 à G36 qui m'interessent dans le fichiers d'origine, donc j'aimerai bien copier ces données et les mettre dans la feuille 3 de l'autre fichier qui porte un nom spécifique, sinon avec la méthode ci-dessus j'ai bien peur que à chaque fois, la feuille coller n'aille pas sur la bonne feuille (la 3eme)
 

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

As-tu quelque chose que tu souhaites conserver sur la feuil3 de ton fichier type ? Tout dépends de ça.
Quant à
Alucard a dit:
moi je veux qu'il me copie les données qui sont présentes sur la feuille 1 du doc initial
... j'espère que tu sauras corriger ça
CL1.Worksheets("Feuil3").copy
@+
 

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

SI vous voulez, finalement, ce ne sont que les données présentes de A1 à G36 qui m'interessent dans le fichiers d'origine, donc j'aimerai bien copier ces données et les mettre dans la feuille 3 de l'autre fichier qui porte un nom spécifique, sinon avec la méthode ci-dessus j'ai bien peur que à chaque fois, la feuille coller n'aille pas sur la bonne feuille (la 3eme)
Nos messages se sont télescopés...
Ok, alors dans ce cas là, tu ne copies que la plage
Code:
    CL1.Worksheets("Feuil1").Range("A1:G36").copy CL2.Worksheets("Feuil3").Range("A1")
Et tu racontes la suite de tes aventures :D
 

Discussions similaires


Haut Bas