Automatisation d'une Facture - Macro CopyPaste semble correct et ne s'exécute pas

  • Initiateur de la discussion Initiateur de la discussion schrom007
  • 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 !

schrom007

XLDnaute Nouveau
Bonjour à tous,

J'essaye d'automatiser la facture d'un membre de ma famille avec une macro normale que voici :

J'ai créer une macro
Code:
Sub Imprimer()
    'Sauvegarder et imprimer
    'Application.Visible = True 'Pour cacher Excel
    Application.ScreenUpdating = False 'Pour ne pas mettre à jour l'affichage
    Dim NL As Integer
    Dim Art As Integer
    Dim NR As Integer
    
    NL = Worksheets("Sauvegarde").Cells(65535, 1).End(xlUp).Row 'Numéro de Ligne de départ de la feuille DATA
    'MsgBox "NL vaut " & NL
    'Incrémentation
    NL = NL + 1
    'MsgBox "A présent, NL vaut " & NL 'Après incrémentation
    
    NR = Worksheets("Facture").Range("E4")
    Dim Rng As Range
    Set Rng = Worksheets("Sauvegarde").Range("F:F").Find(NR, LookIn:=xlValues)
    'Impression en double exemplaire
    'Sheets("Facture").PrintOut copies:=2
    'Copie et sauvegarde des données
    If Rng Is Nothing Then
    'Informations sur la Facture
    Sheets("Facture").Cells(4, 5).Select
    Selection.Copy
    Sheets("Sauvegarde").Select
    Range("A" & NL).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'Date
    Sheets("Facture").Select
    Range("E3").Select
    Selection.Copy
    Sheets("Sauvegarde").Select
    Range("B" & NL).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'Client
    Sheets("Facture").Select
    Range("E5").Select
    Selection.Copy
    Sheets("Sauvegarde").Select
    Range("C" & NL).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'Montant Toutes Taxes Comprises
    Sheets("Facture").Select
    Range("F25").Select
    Selection.Copy
    Sheets("Sauvegarde").Select
    Range("D" & NL).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'TVA
    Sheets("Facture").Select
    Range("G6").Select
    Selection.Copy
    Sheets("Sauvegarde").Select
    Range("E" & NL).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'Article-Quantité-PrixUnitaire
    Sheets("Facture").Select
    Art = Worksheets("Facture").Range("B14")
    Dim i As Integer 'ligne
    Dim j As Integer 'colonne
    Dim c As Integer 'incrémentation de 1 ds Sauvegarde
    Dim p As Integer
    c = 6
    
    For i = 1 To 8
        For j = 1 To 5
        Worksheets("Facture").Cells(13 + i, 1 + j).Select
        Selection.Copy
        Sheets("Sauvegarde").Cells(NL, c).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        c = c + 1
        Next
    Next
        
    Application.Visible = True 'Pour afficher Excel
    Application.ScreenUpdating = True 'Pour mettre à jour l'affichage
    Sheets("Facture").Activate
    Range("E4").Select
    MsgBox "Les données sont enregistrées selon le request number " & Worksheets("Facture").Range("E4").Value, vbOKOnly + vbInformation, "ENREGISTREMENT COMPLET"
    'Incrémentation de la facture
    NR = NR + 1
    Else
    MsgBox "Le Request number existe déjà dans la feuille Sauvegarde, Le request number est " & Worksheets("Facture").Range("E4").Value, vbOKOnly + vbExclamation, "Request Number Connu"
            
    End If
    
End Sub

Le code s'arrête aux lignes suivantes avec les messages respectifs suivants :
Code:
 Sheets("Facture").Cells(4, 5).Select
    Selection.Copy

Il me dit que la fonction Select ne peut fonctionner.

Avez-vous une idée du problème ?

J'espère pouvoir laisser cet exemple pour une personne ultérieure 🙂

D'avance merci.
 

Pièces jointes

Re : Automatisation d'une Facture - Macro CopyPaste semble correct et ne s'exécute p

Bonsoir,

Après plusieurs essais le code fonctionne bien chez moi avec votre fichier..

Peut-être que sur votre fichier lors de vos essais la cellule en question était fusionnée ?
Sinon au lieu de :
Code:
 Sheets("Facture").Cells(4, 5).Select
     Selection.Copy

Je conseillerai plutôt :

Code:
 Sheets("Facture").Cells(4, 5).Copy

Cela permet d'éviter la selection, et va copier directement la cellule.

Bonne soirée 😉
 
Re : Automatisation d'une Facture - Macro CopyPaste semble correct et ne s'exécute p

Merci beaucoup. J'ai essayé et cela fonctionne sur ma machine. Je testerai le soir chez le membre de la famille. Si OK, je remets le fichier sur ce sujet et je clos la discussion. 🙂

Merci beaucoup pour l'aide rapide !
 
- 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
10
Affichages
486
Réponses
18
Affichages
237
Réponses
2
Affichages
238
Réponses
17
Affichages
934
Retour