> 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 ???

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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
19,99 €Tapis de souris Corsair MM300 PRO (93x30 cm) à 19,99 €
Valable jusqu'au 28 Octobre

Amazon fait une promotion sur le tapis de souris Corsair MM300 PRO Extended qui passe à 19,99 € au lieu de 34,99 €. Ce tapis de souris extra large mesure 93 x 30 cm et vous permettra de couvrir votre bureau et disposer dessus votre clavier et votre souris qui ne risquera plus de sortir du tapis. Le tapis résiste à l'eau, peut être lavé et possède des contours cousus pour éviter l'effilochement.


> Voir l'offre
309,99 €Ecran PC 32 pouces incurvé Samsung G5 (WQHD, 144 Hz, 1 ms) à 309,99 €
Valable jusqu'au 27 Octobre

Amazon fait une promotion sur l'écran PC Samsung 32 pouces incurvé LC32G53TQWUXEN à 309,99 € alors qu'on le trouve ailleurs à partir de 359 €. Cet écran incurvé de 32 pouces offre une définition WQHD de 2560x1440 pixels et est compatible FreeSync Premium avec un taux de réponse de 1 ms et un rafraichissement de 144 Hz. La livraison est gratuite.


> Voir l'offre
111,99 €Perceuse sans-fil Bosch Prol GSB 12V-15 + 39 accessoires + 2 Batteries 2 AH à 111,99 €
Valable jusqu'au 28 Octobre

Amazon fait actuellement une belle promotion sur la perceuse sans fil Bosch Professional GSR 12V-15 avec 2 batteries 12V 2.0 AH au lithium, sa pochette et 39 pièces d'accessoires à 111,99 € € livrée gratuitement alors qu'on la trouve ailleurs à partir de 140 €.

Errata : cette percese ne dispose pas de percussion.


> 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