Excel ajouter une nouvelle ligne automatiquement

Excel ajouter une nouvelle ligne automatiquement - VB/VBA/VBS - Programmation

Marsh Posté le 22-02-2006 à 00:36:29    

Sujet: Excel, Ligne automatique
 
Bonjour à tous. Voici mon probleme:
J'ai une feuille FACTURE avec les champs Code_client, Qte,Prix par exemple.
Je voudrais copier ces valeurs sur une ligne dans une autre feuille RAPPORTS.  
 
Et si je fais une nouvelle facture, je voudrais que les nouvelles valeurs s'ajoutent dans Rapport sur la ligne suivante. Comment faire pour pouvoir ajouter cette nouvelle ligne automatiquement et que les valeurs s'y inscrivent
Merci

Reply

Marsh Posté le 22-02-2006 à 00:36:29   

Reply

Marsh Posté le 22-02-2006 à 04:08:23    

bonjour,
La macro suivante copie la plage "A1:E5" sur la première ligne libre de "Facture" :

Code :
  1. Sub Test()
  2. i = Sheets("Rapport" ).Cells(65535, 1).End(xlUp).Row
  3. Sheets("Facture" ).Range("A5:E5" ).Copy Sheets("Rapport" ).Range("A" & i + 1)
  4. End Sub


Ok ?


---------------
roger
Reply

Marsh Posté le 27-02-2006 à 00:44:52    

merci beaucoup pour ton aide. Je vais le tester demain et je t'en donne des nouvelles
Merci
Michel

Reply

Marsh Posté le 27-02-2006 à 17:41:38    

Helas cela ne fonctionne pas. J'ai le message suivant de VBA "Erreur d'exécution "9" , L'indice n'appartient pas à la sélection ''
Voici la macro que j'utilise présentement:
' copyall Macro
' Macro enregistrée le 2006-02-26 par Michel
'
    Sheets("transition" ).Select ' on choisit la feuille "transition"
    Range("A2:F2" ).Select 'on select les cellules A2 à F2
    Range("F2" ).Activate
    Selection.Copy
    Sheets("rapports" ).Select
    Range("a2:F2" ).Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, transpose:=False
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("C3" ), Order1:=xlDescending, Key2:=Range("B3" ) _
        , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom
    Range("A9" ).Select   '// Ici il faut trouver la formule pour placer curseur à première ligne vide  
'// pour de nouvelles données (cumuler les données)
'
End Sub
 
Si tu as d'autres idées cela pourrait m'aider
Merci beaucoup

Reply

Marsh Posté le 27-02-2006 à 19:45:32    

bonsoir,
j'avais pas capté pour la collage spécial :

Code :
  1. Sub Test()
  2.     i = Sheets("Rapports" ).Cells(65535, 1).End(xlUp).Row
  3.     Sheets("transition" ).Range("A2:F2" ).Copy
  4.     Sheets("Rapports" ).Range("A" & i + 1).PasteSpecial Paste:=xlValues
  5.     Application.CutCopyMode = False
  6.     ' Cette macro ne fait aucune sélection et n'active rien
  7.     ' A toi de faire ton tri ensuite...
  8.     ' Sur cette ligne tu pourrais appeler une sous macro  : Tri
  9. End Sub


Par exemple :

Code :
  1. Sub Tri()
  2.     Sheets("rapports" ).Range("blabla" ).Select
  3.     Selection.Sort Key1:=Range("C3" ), Order1:=xlDescending, Key2:=Range("B3" ) _
  4.         , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
  5.         False, Orientation:=xlTopToBottom
  6. End Sub


A+


Message édité par galopin01 le 27-02-2006 à 19:49:44

---------------
roger
Reply

Marsh Posté le 27-02-2006 à 21:11:12    

Merci beaucoup pour ton aide. Je vais faire le test tantôt
et j'espère que ça va fonctionner et je te reviendrai.
Encore une fois merci

Reply

Marsh Posté le 27-02-2006 à 21:11:12    

Merci beaucoup pour ton aide. Je vais faire le test tantôt
et j'espère que ça va fonctionner et je te reviendrai.
Encore une fois merci

Reply

Marsh Posté le 27-02-2006 à 21:32:54    

Salut CHAMPION !Oui ça fonctionne super bien. Je suis vraiment
content car depuis plus d'une semaine que je travaille sur ce fameux code. J'ai tout tenté mais le plus loin que j'allais était  
de pouvoir coller les valeurs sur une même ligne mais impossible de coller de nouvelles valeurs sur la ligne suivante. Mon code écrasait tout simplement la première ligne donc c'était impossible d'avoir un cumul des factures. Mais avec ton code ça fonctionne exactement comme je le voulais.
Encore une fois un gros Merci pour ton aide, je l'apprécie beaucoup.
Bonne fin de soirée

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed