EXPORTER FICHES EXCEL VBA [Fermé]

Signaler
Messages postés
14
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
14 juin 2016
-
 tchekgu -
Bonjour à tous

J'ai un code qui me permet de charger des fiches excel d'un repertoir de mon ordinateur, de les conslider sur une feuille d'un classeur différent et de pouvoir les modifier dans ce classeur.

Sauf que, je souhaitrais que chaque nouvelle fiche saisie s'ajoute aussi dans le repertoire de base sous forme de fichier excel independant et que les modifications apportées aux fiches du classeur consolidées apparaissent aussi sur les fiches non consolidées du repertoire d'origine.

Voici mon code :




'enregistrement fiche client
Private Sub Editer_Click()

Application.ScreenUpdating = False
If Nom.Text <> "" Then
With Worksheets("Clients")
If Nom.ListIndex <> -1 Then
ligne = Num_Index + 2 'ecriture meme ligne
Nom_Fichier = Nom.list(Nom.ListIndex, 0)
'mise a jour fichier
Set w1 = Workbooks.Open(chemin & Nom_Fichier)
With Wb.Worksheets("fiche_Client")
.Cells(2, 2).Value = Nom.Text
.Cells(4, 2).Value = Prénom.Value
.Cells(6, 2).Value = Téléphone.Value
.Cells(8, 2).Value = Adresse.Value
.Cells(10, 2).Value = Ville.Value
.Cells(12, 2).Value = Code_Postal.Value
.Cells(14, 2).Value = Date
End With
Wb.Close True
Else
'nouveau client
ligne = .Range("C" & Rows.Count).End(xlUp).Row + 1
'ecriture infos dans feuille modele masquee: fiche_Client
With Worksheets("fiche_Client")
.Range("B2:B14").ClearContents
.Cells(2, 2).Value = Nom.Text
.Cells(4, 2).Value = Prénom.Value
.Cells(6, 2).Value = Téléphone.Value
.Cells(8, 2).Value = Adresse.Value
.Cells(10, 2).Value = Ville.Value
.Cells(12, 2).Value = Code_Postal.Value
.Cells(14, 2).Value = Date
End With
'creation nouveau fichier
Call Creation_Fichier(Nom_Fichier)
Worksheets("fiche_Client").Cells(2, 3).Value = Nom_Fichier
End If
'Ecriture Infos Feuille BD: Clients
.Cells(ligne, 2).Value = Nom_Fichier
.Cells(ligne, 3).Value = Nom.Text
.Cells(ligne, 4).Value = Prénom.Value
.Cells(ligne, 5).Value = Téléphone.Value
.Cells(ligne, 6).Value = Adresse.Value
.Cells(ligne, 7).Value = Ville.Value
.Cells(ligne, 8).Value = Code_Postal.Value
.Cells(ligne, 9).Value = Date
End With
End If
UserForm_Activate
ThisWorkbook.Save
Application.ScreenUpdating = True
End Sub



Cordialement

Mohja

1 réponse

Bonjour,
J'ai deux options pour vous:
1. Utiliser la fonction Excel "sauvegarder la copie de la feuille dans un fichier à part". Faire enregistrer le code en le faisant manuellement pour avoir le bon syntaxe, puis paramétrer le nom du fichier créé.
2. Si les fiches sont toutes au même format, faire une fichier avec la bonne mise en page, mais les valeurs à lire dans la base maîtresse. Avec un paramètre modifiable - le nom de la page / worksheet. Donc faudra ajouter au code: faire une copie du fichier préparé sous un nom choisi, changer le paramètre "worksheet" pour permettre la lecture en temps réel des valeurs à jour du fichier principal.