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

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

  • LIBRAIRIE_SAINT_BERNARD-Facture.xlsm
    29.7 KB · Affichages: 62

NezQuiCoule

XLDnaute Occasionnel
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 ;)
 

schrom007

XLDnaute Nouveau
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 !
 

Discussions similaires

Réponses
3
Affichages
550

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 870
dernier inscrit
Dethomas