• Initiateur de la discussion Initiateur de la discussion bpol
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : aide pour macro

bonsoir

tu as ceci !?
(*) tu n'as pas de point !? est-ce un oublie !?

en plus > Cells(Ligne, 5) .FormulaLocal = "='" & NomFeuille & "'!$J$32"
tu as un espace qui cause erreur entre Cells(Ligne, 5) et .FormulaLocal

.Cells(Ligne, 2) = Sheets("facture").Range("C7")
.Cells(Ligne, 3) = Sheets("facture").Range("G7")
Cells(Ligne, 4) = Sheets("facture").Range("C8") '(*)
Cells(Ligne, 5) .FormulaLocal = "='" & NomFeuille & "'!$J$32" '(*)
Cells(Ligne, 6) .FormulaLocal = "='" & NomFeuille & "'!$J$30" '(*)
Cells(Ligne, 7) .FormulaLocal = "='" & NomFeuille & "'!$J$28" '(*)
Cells(Ligne, 8) .FormulaLocal = "='" & NomFeuille & "'!$J$29" '(*)
Cells(Ligne, 9) .FormulaLocal = "='" & NomFeuille & "'!$G$32" '(*)
 
Re : aide pour macro

bonsoir Roland M,
pour la première partie de ta réponse je vois pas ce que tu veux dire elle est identique à mon autre fichier
par contre il y avait une autre erreur

' Dim NomFeuille As String
au lieu de
Dim NomFeuille As String

mais elle fonctionne toujours pas!

bpol
 
Re : aide pour macro

Bonsoir,
Code:
'If FeuilleExiste(NomFeuille) Then
Ca serait trop simple !
Code:
'GoTo FinCreation
C'est divin ou ...
Code:
'Sheets("fiche").Copy
J'ai beau cherché, pas trouvé !
Avec ce que j'ai compris (et pas compris aussi d'ailleurs)
Code:
Sub enrFact()
Dim NomFeuille as String, i As Byte, Ligne As Integer
NomFeuille = Range("C9")
For i = 1 To Sheets.Count
    If Sheets(i).Name = NomFeuille Then
        Trouve = True
        Exit For
    End If
Next
If Trouve = True Then
    If MsgBox("La feuille " & NomFeuille & " existe déjà!" & vbCrLf & _
        "voulez-vous la remplacer?", vbQuestion + vbYesNo, "Suppression Feuille") = vbYes Then
        Application.DisplayAlerts = False
        Sheets(NomFeuille).Delete
        Application.DisplayAlerts = True
    Else: Exit Sub
    End If
End If
Sheets("facture").Copy After:=Worksheets(Sheets.Count)
ActiveSheet.Name = NomFeuille
    With Sheets("facturier entrées")
    Ligne = .Range("A65536").End(xlUp).Row + 1
        .Hyperlinks.Add Anchor:=.Cells(Ligne, 1), _
                        Address:="", _
                        SubAddress:="'" & NomFeuille & "'!A1", _
                        TextToDisplay:=NomFeuille
        .Cells(Ligne, 2) = Sheets("facture").Range("C7")
        .Cells(Ligne, 3) = Sheets("facture").Range("G7")
        .Cells(Ligne, 4) = Sheets("facture").Range("C8")
        .Cells(Ligne, 5).FormulaLocal = "='" & NomFeuille & "'!$J$32"
        .Cells(Ligne, 6).FormulaLocal = "='" & NomFeuille & "'!$J$30"
        .Cells(Ligne, 7).FormulaLocal = "='" & NomFeuille & "'!$J$28"
        .Cells(Ligne, 8).FormulaLocal = "='" & NomFeuille & "'!$J$29"
        .Cells(Ligne, 9).FormulaLocal = "='" & NomFeuille & "'!$G$32"
    End With
Sheets("facture").Range("F2") = Range("F2") + 1

End Sub
A+
kjin
 
Re : aide pour macro

Bonjour,

Dans la mesure où j'ai bien compris votre demande voilà ce que j'ai fait

1) Construction d'une feuille modèle de facture nommée "___ModeleFacture" qui est masquée et qui sert de base pour
la reconstruction d'une nouvelle facture vierge.

2) Code modifié
Code:
'### Constantes à adapter ###
Const MODELE_FACTURE As String = "___ModeleFacture"
Const FACTURE As String = "facture"
'############################

Sub enrFact()
Dim NomFeuille As String
Dim Ligne As Long
Dim FACT As Worksheet
Dim MODELE As Worksheet
Dim S As Worksheet
Dim SH As Shape
    
On Error Resume Next
Set FACT = Sheets(FACTURE)
If Err <> 0 Then
  MsgBox "La feuille ''" & FACTURE & "'' est introuvable."
  Exit Sub
End If
'Récupération du nom de la nouvelle feuille
NomFeuille = FACT.Range("C9")
'Teste si elle existe déjà.
Set S = Sheets(NomFeuille)
If Err = 0 Then
  If MsgBox("La feuille '" & NomFeuille & "' existe déjà!" & vbCrLf & _
        "voulez-vous la remplacer?", vbQuestion + vbYesNo, "Créer") = vbYes Then
        'Si oui on la détruit
    Application.DisplayAlerts = False
    Sheets(NomFeuille).Delete
    Application.DisplayAlerts = True
  End If
End If
On Error GoTo 0
FACT.Copy After:=Worksheets(Sheets.Count)
Set S = ActiveSheet
S.Name = NomFeuille

'--- Supprime les boutons de la nouvelle feuille ---
For Each SH In S.Shapes
  If SH.Type = msoFormControl Then SH.Delete
Next SH
'--- Supprime les formules de la nouvelle feuille ---
S.Cells.Copy
S.Cells.PasteSpecial Paste:=xlPasteValues
S.[a1].Select
Application.CutCopyMode = False
'-------------

With Sheets("facturier entrées")
  Ligne = .Range("A65536").End(xlUp).Row + 1
  .Hyperlinks.Add Anchor:=.Cells(Ligne, 1), _
      Address:="", _
      SubAddress:="'" & NomFeuille & "'!A1", _
      TextToDisplay:=NomFeuille
  .Cells(Ligne, 2) = S.Range("C7")
  .Cells(Ligne, 3) = S.Range("G7")
  .Cells(Ligne, 4) = S.Range("C8")
  .Cells(Ligne, 5) = S.Range("J32")
  .Cells(Ligne, 6) = S.Range("J30")
  .Cells(Ligne, 7) = S.Range("J28")
  .Cells(Ligne, 8) = S.Range("J29")
  .Cells(Ligne, 9) = S.Range("G32")
End With

'--- Détruit la feuille "facture" et la reconstruit à partir d'un modèle ---
On Error Resume Next
Set MODELE = Sheets(MODELE_FACTURE)
If Err <> 0 Then
  MsgBox "La feuille modèle ''" & MODELE_FACTURE & "'' est introuvable."
  Exit Sub
End If
On Error GoTo 0
Application.DisplayAlerts = False
FACT.Delete
Application.DisplayAlerts = True
With MODELE
  .Visible = xlSheetVisible
  .[f2] = .[f2] + 1
  .Copy After:=Sheets(.Index)
  ActiveSheet.Name = FACTURE
  .Visible = xlSheetHidden
End With
End Sub

J'ai supprimé les feuilles qui ne m'était pas utiles pour pouvoir transmettre une pièce jointe n'excédant pas la limite de taille.

Cordialement.

PMO
Patrick Morange
 
Re : aide pour macro

Bonjour à tous je suis nouveau, et j'ai un peu le même problème, je m'y connais très peu en Excel et j'aimerais établir une facturation.
J'ai déjà créer la facture type un petit fichier client et j'aimerais créer une macro qui en appuyant sur un bouton déclenche la sauvegarde de la facture, cela fait plusieurs mois que j'y suis, toujours aucune solutions.aidez moi svp
 

Pièces jointes

Dernière édition:
Re : aide pour macro

Bonjour à tous je suis nouveau, et j'ai un peu le même problème, je m'y connais très peu en Excel et j'aimerais établir une facturation.
J'ai déjà créer la facture type un petit fichier client et j'aimerais créer une macro qui en appuyant sur un bouton déclenche la sauvegarde de la facture, cela fait plusieurs mois que j'y suis, toujours aucune solutions.aidez moi svp


voici une partie de ta solution car je suppose que tu désires également remplir la page contenu facture
pour la date un petit conseil utilise le raccourci Ctrl + . sinon les dates de tes factures vont se mettre à jour tt le temps
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
579
Réponses
3
Affichages
311
Réponses
16
Affichages
825
Retour