× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 CREATION BASE DE DONNEES AVEC 1 AUTRE FICHIER EXCE
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
MALTER
  Posté le 22/11/2012 @ 01:30 
Aller en bas de la page 
Nouvel astucien

Bonjour,

J'ai une série de 10 fichiers qui sont des modèles pour devis ou facture de 2 a 10 pages

Je souhaiterai mettre en place une numérotation automatique via un fichier excel a part qui servirai de base de données façon peut-être publipostage.

Le but de la numérotation automatique est qu'en fonction de si la valeur (devis ou facture) est sélectionnée il rajoute +1 au dernier numéro de devis ou facture.

Dans un deuxième temps je souhaiterai que cette base de données soit automatiquement mise a jour "champs" a chaque fois qu'un devis ou qu'une facture est crée.

Donc je résume en espérant m'exprimer correctement et suffisamment clairement :

10 fichiers excel qui font appel à ce fichier BDD pour la numérotation automatique
BDD auto alimenté par les infos des devis et factures crée.
Cela veut dire qu'a chaque nouveau devis ou facture il rajoute une ligne avec le numéro de devis ou facture le type de fichier devis ou facture et complète des "champs" nom prénom adresse montant..

Ci-joint les 2 fichiers sur lequels je travail pour le moment (les autres sont en fait le model devis-facture en plusieurs pages)


http://cjoint.com/?BKvxnLIXfk9 (la base de données)

http://cjoint.com/?BKvxplTOyL6 (le fichier devis/facture)

Je bloque sur la base de données, je ne sais comment extraire les données et mettre la numerotation automatique.


Merci a eux qui pourront m'aider.

Publicité
ferrand
 Posté le 22/11/2012 à 02:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut,

Si j'ai bien compris (mais n'en suis pas vraiment sûr), on sert la facture ou devis.

Lorsqu'on sélectionne facture ou devis, il faut donc qu'une procédure aille chercher dans BDD la fin de liste en colonne B, remonte pour trouver le dernier devis ou la dernière facture selon le cas, prélève son numéro en colonne A, l'incrémente et le porte en F4.

La procédure de recherche ne pose pas de pb particulier (penser à lui faire ouvrir la BDD au cas où elle ne l'est pas), et son lancement peut être lié à la sélection devis ou facture (évènement Change de la feuille affectant la cellule F1), et également à l'ouverture du classeur (de façon que la sélection en cours soit prise en compte si elle n'a pas besoin d'être modifiée).

Ensuite, une fois la facture ou devis rempli, il faut qu'au clic sur le bouton Enregistre une procédure prélève les données à inscrire dans la BDD, sans oublier le numéro (on peut constituer un tableau de ces données dans l'ordre voulu), et procède à l'inscription sur la BDD (la ligne d'inscription ayant été déterminée par la procédure de recherche précédente, on peut prévoir de la conserver pour la réutiliser ou bien la rechercher à nouveau, ou bien une fonction utilisée par ces deux procédures pourrait la renvoyer).

Si j'ai bien compris, voilà comment je procèderai.

Bonne fin de nuit.

ferrand
 Posté le 24/11/2012 à 07:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Disparu ?

w36xb2w
 Posté le 24/11/2012 à 16:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour

Il vaut mieux aller ici Spécialistes excel

http://www.excel-downloads.com/forum/

Yaloo
 Posté le 24/11/2012 à 17:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour w36xb2w, Ferrand,

Pour w36xb2w, il vaut mieux se taire plutôt que de dire des bétises. Le forum de PCASTUCES est très bon, notamment avec Ferrand, Galopin, Gilbert etc...

Excel-downloads est très bon mais ce n'est pas le seul.

Yaloo

bruce68
 Posté le 24/11/2012 à 21:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir Malter et le forum

Voir fichier ci joint pour exemple

http://cjoint.com/?BKyvAQdwnf2

MALTER
 Posté le 25/11/2012 à 01:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
ferrand a écrit :

Disparu ?

Bonsoir ferrand, et merci de ta reponse

En effet bien que je ne sois pas expert, je crois que ta solution est celle que je cherche.

Pourrais tu essyaer de me fournir 1 exemple ou bien un article qui explique depuis le debut comment proceder.

Je t'en serai gré, merci par avance.

Cordialement

MALTER
 Posté le 25/11/2012 à 01:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
ferrand a écrit :

Disparu ?

je m'excuse

j'ai voulu modifier mon texte et je ne sais pas comment je me suis debrouiller mais j'ai fait une betise

Toutes mes excuses

MALTER
 Posté le 25/11/2012 à 02:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
bruce68 a écrit :

Bonsoir Malter et le forum

Voir fichier ci joint pour exemple

http://cjoint.com/?BKyvAQdwnf2

Bonsoir Bruce68,

Je suis sous le choc de ton fichier, je suis impressionné

Quelques questions :

- Puis je l'adapter pour mon systeme de fichier a moi (car j'ai 10 models qui changent juste sur le nombre de pages)

De plus dans le BTP nous avons 2 TVA donc c'est galere a gerer, si tu as regarde mon fichier il est exactement tel que nous en avons besoin

En revanche sans ton travail derrier, qu'en penses tu ???

Publicité
ferrand
 Posté le 25/11/2012 à 04:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut,

Si tu décides de t'inspirer du fichier de bruce68, il te faut repenser ton organisation : utilisation de formulaires de saisie, bases matériaux et clients, enregistrement séparé des devis et factures... Cela présente des avantages indéniables, mais à toi de voir comment tu peux l'adapter.

Si tu choisis d'en rester à tes fichiers actuels, je peux concrétiser plus précisément les conseils que j'avais sommairement formulés.

1) Numérotation : ajustée automatiquement, à l'ouverture du classeur et au changement devis/facture dans la cellule F1.

Pour ce faire, une procédure Numéroter lancée par les évènements ouverture du classeur et modification de la cellule F1 :

Dans le module ThisWorkbook :

Private Sub Workbook_Open()
Numéroter
End Sub

Dans le module de Feuil1 :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$1" Then Numéroter
End Sub

Dans un module standard (Module1) :

Sub Numéroter()
With ThisWorkbook.Worksheets(1)
.Range("F4").Value = NumListe(.Range("F1").Value)
.Activate
.Range("I4").Select
End With
End Sub

Cette procédure utilise une fonction (NumListe) pour rechercher le numéro en lui fournissant comme argument le contenu de F1 (soit : DEVIS ou FACTURE) et affecte ce numéro à F4. Accessoirement elle repositionne le curseur en I4 (mais tu peux bien sûr lui faire faire autre chose).

Function NumListe(Optional df As String) As Long
Dim n&
On Error GoTo Ouvrir
With Workbooks("BDD.xlsx").Worksheets(1)
n = .Range("A1048576").End(xlUp).Row
If df = "DEVIS" Or df = "FACTURE" Then
Do
If .Cells(n, 2).Value = df Then
NumListe = .Cells(n, 1).Value + 1
Exit Do
Else
n = n - 1
If n = 0 Then NumListe = 1
End If
Loop While n > 0
Else
NumListe = n + 1
End If
End With
Exit Function
Ouvrir:
Workbooks.Open "E:\Documents\BDD.xlsx"
Resume
End Function

NB: surlignage jaune = modifier pour mettre nom du fichier de base de données (que j'ai appelé BDD) éventuellement précédé du chemin.

En ce qui concerne le fichier de BDD, éviter les lignes vides (susceptibles de provoquer des erreurs dans une base de données), donc commencer à la ligne 2 (et non 3). Inutile d'initialiser un numéro 1, la fonction renverra 1 si elle ne trouve pas de DEVIS ou FACTURE (selon le cas) inscrite.

Cette fonction sera également utilisée par la procédure d'inscription dans la base de données : appelée sans argument elle renverra le numéro de la ligne à servir.

(à suivre)

ferrand
 Posté le 25/11/2012 à 05:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

2) Inscription dans la base de donnée : opéré par le bouton d'enregistrement (qui lancera l'inscription et l'enregistrement)

Dans le module de Feuil1 :

Private Sub CommandButton1_Click()
With Application
.ScreenUpdating = False
.DisplayAlerts = False
InscrireBDD
Enregistrer
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub

Ce n'est que ta procédure existante allégée : elle lance les procédures d'inscription et enregistrement qu'il est plus rationnel d'avoir dans Module1.

Dans Module1 :

Sub InscrireBDD()
Dim dliste(1 To 9), i%, n&
With ThisWorkbook.Worksheets(1)
dliste(1) = .Cells(4, 6).Value
dliste(2) = .Cells(1, 6).Value
For i = 3 To 7
dliste(i) = .Cells(i + 6, 6).Value
Next i
dliste(8) = .Cells(13, 8).Value
dliste(9) = .Cells(117, 7).Value
End With
n = NumListe
With Workbooks("BDD.xlsx").Worksheets(1)
For i = 1 To 9
.Cells(n, i).Value = dliste(i)
Next i
End With
End Sub

NB: surlignage jaune à remplacer par nom du fichier de base de données. La procédure récupère les informations à inscrire dans un tableau (dliste) et met à jour la base.

3) Enregistrement :

Dans Module1 :

Sub Enregistrer()
Dim ChDossier As String
Dim NomFichier As String
ChDossier = "C:\Documents and Settings\MC\Bureau\DECO PRO\VITOR\"
If [F1] = "DEVIS" Then
ChDossier = ChDossier & "Devis"
NomFichier = "Devis "
Else
ChDossier = ChDossier & "Factures"
NomFichier = "Facture "
End If
NomFichier = NomFichier & Range("F4").Value & " " & Format(Range("G4").Value, "dd_mm_yyyy") _
& " " & Range("I4").Value

ThisWorkbook.SaveAs Filename:=NomFichier, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NomFichier & ".pdf", _
Quality:=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

ThisWorkbook.Close False
End Sub

NB: je n'ai pas modifié ta procédure (n'ayant pas les informations nécessaires). Juste essayé de la raccourcir et expurger des éléments inutilisés. Modifié 'ChDir' qui est une instruction VBA et ne doit pas être utilisé comme nom de variable.

Je n'ai testé (en gros) que la numérotation. Me signaler si anomalies...

ferrand
 Posté le 25/11/2012 à 05:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Je te renvoie ton fichier, pour une meilleure lisibilité des macros : http://cjoint.com/?BKzfj7cH7lC

Si tu as plusieurs fichiers de saisie des devis et factures, tu pourras y introduire les macros de ce dernier (en modifiant s'il y a lieu les adresses de cellules où prélever les infos).

Si tu ne t'orientes pas vers une adaptation du fichier de bruce68, il me semble que tu devrais au moins t'en inspirer pour compléter ton système par une base de données matériaux ou prestations, et une base clients, ce qui faciliterait la réalisation des devis et factures.

(Entre parenthèses, revenant un peu sur le forum après une longue absence, je note que c'est devenu galère d'insérer du code dans les messages : si quelqu'un sait comment on peut le faire facilement, je suis preneur...)

Bonne journée à tous.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
-25%-25% sur le coin des affaires chez LDLC avec le code CAMORD
Valable jusqu'au 21 Octobre

LDLC propose actuellement 25% de réduction sur son coin des affaires qui regroupe des produits neufs en fin de série ou des produits reconditionnés. N'hésitez à parcourir les différentes rubriques, il y a vraiment des choses intéressantes. Saisissez le code CAMORD dans votre panier pour profiter de l'offre.


> Voir l'offre
329,90 €Ecran ultra large LG 34 pouces 34WL50S-B à 329,90 €
Valable jusqu'au 21 Octobre

Amazon propose actuellement l'écran 34 pouces LG 34WL50S-B à 329,90 € livré gratuitement alors qu'on le trouve à partir de 400 € ailleurs. Cet écran ultra large est au format 21/9, possède une dalle IPS et offre une résolution de 2560 x 1080 pixels. Avec lui, vous pourrez bénéficier d'une plus grande immersion dans les jeux et les films. Cet écran est compatible FreeSync.


> Voir l'offre
GratuitJeu PC Amnesia: A Machine for Pigs gratuit
Valable jusqu'au 22 Octobre

Epic Game Store offre actuellement le jeu PC Amnesia: A Machine for Pigs. Un jeu d'horreur à la première personne qui vous plongera dans les profondeurs de la cupidité, du pouvoir et de la folie. Développé par The Chinese Room, les créateurs de Dear Esther, et publié par Frictional Games, le studio derrière Amnesia: The Dark Descent. PEGI 18.


> Voir l'offre

Sujets relatifs
Demande d'aide à la création d'une base de données
Données d'un Fichier txt avec EXCEL
Fichier de base de données
creation base de données access 2007
Transférer donnée excel vers un autre fichier exce
Création base de données clientèle
création d'une base de données sous OOo
Ouvrir avec macro un fichier dans autre classeur
création de base de données à partir d'un document
Petite base de données/lien avec word
Plus de sujets relatifs à CREATION BASE DE DONNEES AVEC 1 AUTRE FICHIER EXCE
 > Tous les forums > Forum Bureautique