Création automatique de nouvelles feuilles factures

sfconstant

XLDnaute Occasionnel
Bonsoir à tous,

J'essaye en vain d'adapter une macro (que j'ai trouvé sur le forum à mon fichier), mais comme je suis trés doué en vba !!! je me tourne vers vous pour une solution.

Voilà, dans le fichier joint, j'ai une première feuille récapitulative des différentes factures (feuilles suivantes) et un bouton pour créer automatiquement des factures semblables à F1 en feuille 2), mais ça ne marche pas !!

De plus, une fois ma nouvelle facture créée, j'aimerais que la feuille récapitulative se mette automatiquement à jour et décale la ligne "totaux" vers le bas

Merci d'avance

François
 

Pièces jointes

  • Factures_2009.zip
    27.8 KB · Affichages: 90
  • Factures_2009.zip
    27.8 KB · Affichages: 89
  • Factures_2009.zip
    27.8 KB · Affichages: 90
Dernière édition:

jp14

XLDnaute Barbatruc
Re : Création automatique de nouvelles feuilles factures

Bonsoir

Ci joint un fichier avec une création à partir d'un modèle.

A tester

JP
 

Pièces jointes

  • Factures_2009.zip
    26.7 KB · Affichages: 140
  • Factures_2009.zip
    26.7 KB · Affichages: 138
  • Factures_2009.zip
    26.7 KB · Affichages: 142

sfconstant

XLDnaute Occasionnel
Re : Création automatique de nouvelles feuilles factures

Bonsoir à nouveau,
J'ai du faire une bêtise mais ma page récapitulative ne veut pas s'actualiser et les hyperliens ne fonctionnent pas.
Merci
François
 

Pièces jointes

  • Factures_2009 Antoine.zip
    26.2 KB · Affichages: 54
  • Factures_2009 Antoine.zip
    26.2 KB · Affichages: 53
  • Factures_2009 Antoine.zip
    26.2 KB · Affichages: 54

sfconstant

XLDnaute Occasionnel
Re : Création automatique de nouvelles feuilles factures

Bonjour à tous , j'ai beau me creuser la tête mais je n'arrivre pas à trouver la solution pour ma page récapitulative (mise à jour avec la création des factures et hyperliens)
Merci d'avance
François
 

sfconstant

XLDnaute Occasionnel
Re : Création automatique de nouvelles feuilles factures

Bonsoir à tous,

mon problème dans la page récapitulative est que l'actualisation ne se fait pas comme je veux : ça dois provenir de cette partie là de la vba :

With Sheets("Récapitulatif 2009")
Dim dl1 As Long ' dernière ligne
dl1 = .Range("b65536").End(xlUp).Row + 1
.Hyperlinks.Add .Range("a" & 7), Address:="", SubAddress:= _
"'F" & i, TextToDisplay:="F" & i
.Range("c" & 7).Value = Format(Now, "dd/mm/yyyy")
.Range("b" & 7).Value = i

End With
End Sub

Jre ne sais pas comment faire pour que le chaque nouveau hyperliens se mette en dessous du précedent et que les différentes cases se remplissent.

Merci pour tous et bonne nuit.
 

Pièces jointes

  • Factures_2009 Antoine.zip
    28.9 KB · Affichages: 44
  • Factures_2009 Antoine.zip
    28.9 KB · Affichages: 43
  • Factures_2009 Antoine.zip
    28.9 KB · Affichages: 47

jp14

XLDnaute Barbatruc
Re : Création automatique de nouvelles feuilles factures

Bonjour

A priori il faut remplacer 7 par dl1

dl1 = .Range("b65536").End(xlUp).Row + 1
.Hyperlinks.Add .Range("a" & 7), Address:="", SubAddress:= _
"'F" & i, TextToDisplay:="F" & i
.Range("c" & 7).Value = Format(Now, "dd/mm/yyyy")
.Range("b" & 7).Value = i

Les valeurs sont rangées en C7

A tester

JP
 

jp14

XLDnaute Barbatruc
Re : Création automatique de nouvelles feuilles factures

Bonsoir

Ci joint le fichier modifié, j'ai remplacé la valeur 7 par dl1, et modifié le code pour le lien.

A tester

JP
 

Pièces jointes

  • Factures_2009 Antoine.zip
    26.4 KB · Affichages: 49
  • Factures_2009 Antoine.zip
    26.4 KB · Affichages: 51
  • Factures_2009 Antoine.zip
    26.4 KB · Affichages: 53

sfconstant

XLDnaute Occasionnel
Re : Création automatique de nouvelles feuilles factures

Merci JP

Mais comment faire pour que les données des factures se placent en dessous des titres de colonnes et comment faire pour inserrer les valeurs ?

Si on supprime la dernière facture réaliser les hyperliens vont-ils encore fonctionner ?

Bonne soirée
A +
François
 

Pièces jointes

  • modèle Factures_2009 Antoine.zip
    25.6 KB · Affichages: 47
  • modèle Factures_2009 Antoine.zip
    25.6 KB · Affichages: 46
  • modèle Factures_2009 Antoine.zip
    25.6 KB · Affichages: 45

jp14

XLDnaute Barbatruc
Re : Création automatique de nouvelles feuilles factures

Bonsoir

Les données se mettent à la première ligne vide de la colonne A.
Il faut pour que le document se remplisse correctement mettre des espaces dans la cellule "A4"

Concernant le transfert des données de la facture vers la feuille récapitulative, cela reste à faire

JP
 

sfconstant

XLDnaute Occasionnel
Re : Création automatique de nouvelles feuilles factures

Bonsoir

Merci JP pour ta réponse. J'avance tout doucement.

Pour actualiser mes ifférentes données, jessaie d'adapter un cde que j'ai trouvé dans le forum mais je bloque un peu beaucoup.

Merci beaucoup
Bonne soirée


Voilà le code :

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As range)
Dim i As Long
Dim lig As Long
Dim lidep2 As Long
Dim lidep1 As Long
Dim nomfeuille1 As String
Dim col1 As String
Dim col2 As String
Dim col3 As String
Dim col4 As String
Dim col5 As String
Dim col6 As String
Dim range("J1") As String
Dim range("H10") As String
Dim range("J31") As String
Dim range("J33") As String
Dim range("J35") As String
Dim range As String
Dim col6 As String
Dim col6 As String
Dim col6 As String
Dim col6 As String
Dim data1 As String
Dim data2 As String
Dim Sh As Worksheet
Dim ad As String
'**********************************************
' paramétrage

'feuille récapitulaive
nomfeuille1 = "Récapitulatif 2009"
col2 = "c" ' date
col3 = "d" ' colonne nom
col4 = "e" 'colonne montant hors taxe
col5 = "f" ' colonne montant tva
col6 = "g" ' colonne montant ttc
lidep2 = 8 ' ligne départ

' feuille
range("J1") = "O" 'cellule qui contient la date
range("H10") = "P" 'cellule qui contient le nom
range("J31") = "Q" 'cellule qui contient le montant hors taxe
range("J33") = "R" 'cellule qui contient le montant tva
range("J35") = "S" 'cellule qui contient le montant ttc

' fin de paramètrage

For Each Sh In Worksheets
data1 = Sh.Name
If data1 <> "Récapitulatif 2009" Then
With Sheets(data1)
For i = lidep1 To .range(col3 & "65536").End(xlUp).Row
data2 = .range(col3 & i)
If data2 <> "" Then
If IsNumeric(.range(col4 & i)) Then
lig = recherchemot(ad, data2, nomfeuille1, 1)
If lig <> 0 Then
Sheets(nomfeuille1).range(col2 & lig) = Sheets(nomfeuille1).range(col2 & lig) + .range("J1" & i)
Sheets(nomfeuille1).range(col3 & lig) = Sheets(nomfeuille1).range(col3 & lig) + .range("H10" & i)
Sheets(nomfeuille1).range(col4 & lig) = Sheets(nomfeuille1).range(col4 & lig) + .range("J31" & i)
Sheets(nomfeuille1).range(col5 & lig) = Sheets(nomfeuille1).range(col5 & lig) + .range("J33" & i)
Sheets(nomfeuille1).range(col6 & lig) = Sheets(nomfeuille1).range(col6 & lig) + .range("J35" & i)


Else
Select Case MsgBox("Dans la feuille : & data 1" _
& vbCrLf & "" _
& vbCrLf & "le nom " & data2 & " n'existe pas" _
& vbCrLf & "" _
& vbCrLf & "Voulez-vous le créer" _
, vbYesNo Or vbInformation Or vbDefaultButton1, Application.Name)

Case vbYes
lig = Sheets(nomfeuille1).range(col1 & "65536").End(xlUp).Row + 1
Sheets(nomfeuille1).range(col1 & lig) = data2
Sheets(nomfeuille1).range(col2 & lig) = .range(col4 & i)

Case vbNo

End Select

End If
End If
End If
Next i
End With


End If
Next Sh
End Sub


'---------------------------------------------------------------------------------------
' Procedure : recherchemot
' DateTime : 30/06/2007 20:35
' Author : jp14
' Pour : Ce lien n'existe plus
' Utilisation :
' dim lig as long
'lig =recherchemot(plage_pour la recherche,valeur_cherché,nom_de_la_feuille, code_retour )
' ad plage de recherche
'ad = "a2:" & Sheets("rue").Cells.SpecialCells(xlCellTypeLastCell).Address(0, 0) ' on recherche dans l'ensemble de la feuille
'recherchemot(plage_recherche , valcherche , nom_de_la_feuille , code_retour )
'---------------------------------------------------------------------------------------
'
Private Function recherchemot(plage_recherche As String, valcherche As String, nom_de_la_feuille As String, code_retour As Byte)
Dim firstAddress As String
Dim cel As range
Dim ligne1 As Long
Dim ligne2 As Long


With Sheets(nom_de_la_feuille).range(plage_recherche)
Set cel = .Find(valcherche, LookIn:=xlValues, SearchOrder:=xlByRows, lookat:=xlWhole) ' on recherche ligne par ligne
'Set c = .Find(valcherche, LookIn:=xlFormulas, SearchOrder:=xlByRows) 'si date
'Set £c = .Find(dataf, LookIn:=xlValues, MatchCase:=True, _
SearchOrder:=xlByRows, lookat:=xlWhole)
If Not cel Is Nothing Then

If code_retour = 1 Then recherchemot = cel.Row
If code_retour = 2 Then recherchemot = cel.Address
Exit Function
End If
End With
recherchemot = 0
End Function



End Function
 

Pièces jointes

  • modèle Factures_2009 Antoine.zip
    25.6 KB · Affichages: 68
  • modèle Factures_2009 Antoine.zip
    25.6 KB · Affichages: 64
  • modèle Factures_2009 Antoine.zip
    25.6 KB · Affichages: 65

sfconstant

XLDnaute Occasionnel
Re : Création automatique de nouvelles feuilles factures

Bonsoir à tous,
Pour être plus simple, je voudrais savoir comment faire pour incrementer une valeur qui se trouve par exemple en c3 sur une feuille récapitulative (F1) du même fichier (dans la cellule D5). Je souhaiterais que cette opération se réalise à chaque création de feuilles, en s'inscrivant en desous du résutat précédent (D6, D7, D8...) dans la feuille récapitulative.
Dois-on obligatoirement passer par la vba ou y--t'il une formule magique.

Meri beaucoup
 

sfconstant

XLDnaute Occasionnel
Re : Création automatique de nouvelles feuilles factures

Bonjour à tous

Voila je suis donc occupé d'essayer de faire une boucle pour enregistrer les données de chaque nouvelle feuille sur une feuille récapitulative.

Mais à chaque fois que je fais fonctionné celle-ci les données sont effacés : c'est pas exactement ce que je cherche !!! Quelqu'un pourrait-il m'indiquer le petit truc qu'il manque.

Merci beaucoup. Bonne aprés midi

Sub récap()
'
' récap Macro
' Macro enregistrée le 27/02/2009 par OE
'

Dim sheet As Worksheet

For Each sheet In Worksheets

ActiveWindow.SmallScroll ToRight:=16
range("S10:Y10").Select
Selection.Copy
sheets("Récapitulatif 2009").Select
range("B8:H8").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Next
End Sub
 

jp14

XLDnaute Barbatruc
Re : Création automatique de nouvelles feuilles factures

Bonjour

Ci joint le fichier avec un procédure qui met automatiquement les données dans la feuille recap.
Principe
une macro est lancée quand on change de feuille
Private Sub Workbook_SheetDeactivate(ByVal sh As Object)
La procédure recherche dans la feuille recap la ligne qui contient le numéro de la feuille.
Puis recherche dans la facture le mot "net ht" ( elle ne tient pas compte de la casse pour éviter les problèmes), et recopie les valeurs de la colonne j.

Cette méthode permet de rajouter des lignes dans la facture sans changer la procédure.
Si on modifie les colonnes il faut modifier la procédure.

Il reste à rajouter le nom car je connait pas la cellule pour prendre l'information.

JP
 

Pièces jointes

  • modelle Factures_2009 Antoine.zip
    32.4 KB · Affichages: 94

Discussions similaires

Statistiques des forums

Discussions
312 471
Messages
2 088 707
Membres
103 927
dernier inscrit
Mkeal