Problème macro VBA

Résolu
Soph -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je suis entrain de faire un modèle de facture sur Excel et j'ai créer une macro qui permet de mettre la facture à zéro. j'aimerai également que cette macro permette la conservation d'un historique de facture. J'ai réussi pour l'instant mais le problème c'est que mon historique de facture est présenté sous forme de tableau et l'historique se colle toujours dans la première ligne.

Sous VBA, ma macro se présente comme cela :

ActiveWindow.SmallScroll Down:=18
Range("A50:K50").Select
Selection.Copy
Sheets("Historique de factures").Select
Range("A4").Select CETTE CELLULE DOIT SE MODIFIER A CHAQUE ENREGISTREMENT
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Facture automatisée").Select
Range("F53").Select
ActiveWindow.SmallScroll Down:=-15
Range("J9:K9").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A18:B29").Select
Selection.ClearContents
Range("E18:E29").Select
Selection.ClearContents
Range("F31").Select
Selection.ClearContents
Range("F33").Select
Selection.ClearContents
Range("J34").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=6
Range("G37").Select
Selection.ClearContents
Range("C14").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-18
End Sub

Pourriez vous m'aider svp.
Merci d'avance

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour Soph

    macro légèrement simplifiée, essaies
    au déclenchement de la macro tu dois être sur la feuille "facture automatisée"
    Sub archiver()
    
    With Sheets("Historique de factures")
    ligvid = .Range("A65536").End(xlUp).Row + 1
    .Range(Cells(ligvid, 1), Cells(ligvid, 11)).Value = Sheets("Facture automatisée").Range("A50:K50").Value
    End With
    
    
    plage = Union(Range("F53"), Range("J9:K9"), Range("A18:B29"), Range("E18:E29"), Range("F31"), _
                                Range("F33"), Range("J34"), Range("G37"), Range("C14")).ClearContents
    
    End Sub
    0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    Voici ton code avec quelques modifications :
    Range("A50:K50").Copy    
    With Sheets("Historique de factures")  
    .Range("A65536").End(xlUp).Offset(1, 0).Select    
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _    
    :=False, Transpose:=False    
    End With  
    Range("J9:K9").ClearContents    
    Range("A18:B29").ClearContents    
    Range("E18:E29").ClearContents    
    Range("F31").ClearContents    
    Range("F33").ClearContents    
    Range("J34").ClearContents    
    Range("G37").ClearContents    
    Range("C14").ClearContents    
    End Sub 


    EDIT : je n'ai pas vu la petite erreur avec le "select" du range("A65536"). Ce code fonctionne mieux :
    Range("A50:K50").Copy 
    With Sheets("Historique de factures") 
    .Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
    End With 
    Range("J9:K9").ClearContents 
    Range("A18:B29").ClearContents 
    Range("E18:E29").ClearContents 
    Range("F31").ClearContents 
    Range("F33").ClearContents 
    Range("J34").ClearContents 
    Range("G37").ClearContents 
    Range("C14").ClearContents


    Cordialement,
    -- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
    0
    1. Soph
       
      Merci beaucoup. Ca marche super bien. C'est super :)
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut,
      As tu au moins essayé le code de michel_m ci dessus?
      C'est important, lorsque l'on débute de voir, et de tester, toutes sortes de solution...
      0