copier une feuille de classeur dans un dossier

G

greg

Guest
bonsoir a tous
le forum est hyper instructif pour un novice comme moi
j'ai en vain ,recherche sur le forum un code pour cette tache mais sans succes.
est ce que quelqu'un de confirme peux m'aider merci

je m'explique ,j'ai un classeur avec une de feuille dont des factures ,et j'aimerai avec un userform sauvegarder cette facture dans le fichier client


merci d'avance
 
G

greg

Guest
merci e ton interet pour ma demande


je m'explique,
j'ai un classeur ouvert avec plusieurs modeles(feuilles) qui sont pour moi des trames de documents comme des devis ou des factures ,j'ai un fichier par client ou j'aimerai sauvegarder les differents documents remplies dans mon classeur.

est ce que c'est plus clair

merci encore
 
S

sylsyl

Guest
Re,

j'avais compris cette partie, le genre de precision que je demandais (et que je demande toujours d'aileurs) est:
-veux-tu creer une nouvelle feuille dans le classeur client ou ecraser une feuille existante ?
-le classeur client est-il ouvert ?
-quels sont les noms des feuilles ?
-veux-tu les choisir dans ton USF ou c'est toujours la meme ?
et autres precisoins utiles...

Si tu ne l'as pas deja fait regarde le lien que je t'ai donne, c'est la base, le reste ne sera que mise en forme...

A tout a l'heure,

Sylsyl.

PS: Je ne t'oublie pas mais je ne reviens qu'a 16h00...
 
S

sylsyl

Guest
Re,

me revoila mais toi tu as disparu,
voici quand meme un exemple en FJ...
Voici le code car je n'ai ps Winzip et les .xls ne passent plus...

Cree un USF avec 3 Listbox et 1 bouton.

------------------------------------------------------------
Private Sel1, Sh, Sel2 As String

Private Sub CommandButton1_Click()
Windows(Sel1).Activate
Sheets(Sh).Copy Before:=Workbooks(Sel2).Sheets(1)
ListBox1.Clear
ListBox2.Clear
ListBox3.Clear
End Sub

Private Sub ListBox1_Click()
ListBox2.Clear
ListBox3.Clear
For s = 0 To Me.ListBox1.ListCount
If Me.ListBox1.Selected(s) Then
Sel1 = Me.ListBox1.List(s)
Exit For
End If
Next s
For t = 1 To Workbooks(Sel1).Sheets.Count
ListBox2.AddItem Workbooks(Sel1).Sheets(t).Name
Next t
End Sub

Private Sub ListBox2_Click()
ListBox3.Clear
For s = 0 To Me.ListBox2.ListCount
If Me.ListBox2.Selected(s) Then
Sh = Me.ListBox2.List(s)
Exit For
End If
Next s
For t = 1 To Workbooks.Count
If Workbooks(t).Name <> Sel1 Then ListBox3.AddItem Workbooks(t).Name
Next t
End Sub

Private Sub ListBox3_Click()
For s = 0 To Me.ListBox3.ListCount
If Me.ListBox3.Selected(s) Then
Sel2 = Me.ListBox3.List(s)
Exit For
End If
Next s
CommandButton1.Enabled = True
End Sub

Private Sub UserForm_Initialize()
Dim Ww As Integer
CommandButton1.Enabled = False
Me.ListBox1.Clear
Ww = Workbooks.Count
For i = 1 To Ww
Me.ListBox1.AddItem Workbooks(i).Name
Next i
End Sub

-------------------------------------------------------------------

Essais et tiens moi au courant...

A++, Sylsyl.
 
G

greg

Guest
merci pour tes infos
mais cela me met une comme suit

Private Sub ListBox2_Click()
ListBox3.Clear
For s = 0 To Me.ListBox2.ListCount
If Me.ListBox2.Selected(s) Then
Sh = Me.ListBox2.List(s)
Exit For
End If
Next s
For t = 1 To Workbooks.Count
If Workbooks(t).Name Sel1 Then ListBox3.AddItem Workbooks(t).Name
Next t
End Suberreur de syntaxes


si tu as une idee
merci encore
 
S

sylsyl

Guest
Bonjour,

je comprend pas, j'ai refait un copier/coller du code ci-dessus dans un nouveau USF (dans un nouveau classeur) et ca marche sans probleme...

quant au code retour juste ci-dessus, il n'est pas correct

If Workbooks(t).Name <> Sel1 Then ListBox3.AddItem Workbooks(t).Name

est beaucoup mieux.
Cette ligne permet de mettre dans la listbox3, la liste des classeur ouvert sauf celui selectionne en textbox1 (stocke dans la variable sel1)

Je rappelle que tu dois creer un USF avec 3 textbox
-textbox1 : liste des classeurs ouverts
-textbox2 : liste des feuilles du classeur selectionne en textbox1
-textbox3 : liste des classeurs ouverts sauf celui selectionne en textbox1
-commadbutton1 : lancer le copier/coller

creer cet USF puis une macro qui ouvre cet USF et pour moi ca marche...

si ca marche toujours pas et que tu veux une explication detaillee du code, fais signe...

A++, Sylsyl.
 

Discussions similaires

Statistiques des forums

Discussions
313 020
Messages
2 094 435
Membres
106 027
dernier inscrit
DonSparks