XL 2013 Utiliser feuil excel comme formulaire et copié les valeurs vers une autre

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

iliess

XLDnaute Occasionnel
Bonjour
J’utilise feuil "caisse " comme un formulaire pour saisir des montants et après je les archiver dans un autre feuil " table " et je vide le formulaire
au début j'ai commencé par ce code
==================================================================
Sub TEST()
'les cellules de la colonne b
Sheets("table").Range("a1").End(xlDown).Offset(1, 0) = Sheets("caisse").Range("b1").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 1) = Sheets("caisse").Range("b2").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 2) = Sheets("caisse").Range("b4").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 3) = Sheets("caisse").Range("b5").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 4) = Sheets("caisse").Range("b7").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 5) = Sheets("caisse").Range("b8").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 6) = Sheets("caisse").Range("b11").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 7) = Sheets("caisse").Range("b12").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 8) = Sheets("caisse").Range("b13").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 9) = Sheets("caisse").Range("b14").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 10) = Sheets("caisse").Range("b16").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 11) = Sheets("caisse").Range("b21").Value
'les cellules de la colonne c
Sheets("table").Range("a1").End(xlDown).Offset(0, 12) = Sheets("caisse").Range("c5").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 13) = Sheets("caisse").Range("c9").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 14) = Sheets("caisse").Range("c11").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 15) = Sheets("caisse").Range("c12").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 16) = Sheets("caisse").Range("c13").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 18) = Sheets("caisse").Range("c16").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 19) = Sheets("caisse").Range("c21").Value
'les cellules de la colonne d
Sheets("table").Range("a1").End(xlDown).Offset(0, 20) = Sheets("caisse").Range("d4").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 21) = Sheets("caisse").Range("d11").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 22) = Sheets("caisse").Range("d15").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 23) = Sheets("caisse").Range("d18").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 24) = Sheets("caisse").Range("d19").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 25) = Sheets("caisse").Range("d20").Value
Sheets("table").Range("a1").End(xlDown).Offset(0, 26) = Sheets("caisse").Range("d21").Value

Sheets("caisse").Range("B2, b4:b10, b12:b20").ClearContents

End Sub

==========================================================================
mais j'ai trouvé deux problèmes
1- le code est très long et surtout si j'ajoute une deuxième ou troisième formulaire
2- les cellules "B11" "C11" "D11" contiennent une formule matricielle et le code ne copier pas leurres valeurs et voici la formule
===================================================================
{=INDEX(TABLE!G1:G39948;MAX((TABLE!B1:B39948=B2)*LIGNE(TABLE!G1:G39948)))}
===================================================================
Apres j'ai essayé cette méthode

j'ai affecte tous les valeurs dans une seul ligne c-a-d E1=B1 F1=B2 G1=B4 H1=B5 jusqu’à AD1=D21 et en suite copier tous la plage de E1:AD1 vers feuil Table
=====================================================================
Sub Macro2()
Range("E1:AD1").Copy
Sheets("TABLE").Range("a1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("TABLE").Columns("A:A").NumberFormat = "m/d/yyyy"
Application.CutCopyMode = False
Sheets("caisse").Range("B2, b4:b10, b12:b20").ClearContents
End Sub

========================================================================
SVP aidez moi de trouvez un code pratique et rapide en excution parce que au fin d’année je me trouve avec une 10000 ligne dans la feuil TABLE
merci beaucoup
 
- 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
2
Affichages
867
Réponses
11
Affichages
739
Retour