Bonjour,
La formule de James007 fonctionne parfaitement quand je l'applique sans mes autres macros mais je ne m'en sors pas si je la rattache à mon fichier d'origine. Qu'est-ce que je ne fais pas bien?
L'application des macros est très lente alors que mon fichier de base ne contient que 300 lignes (que j'ai limité ici à une centaine).
Par ailleurs, je cherche à dupliquer 3 fois l'onglet "prétravail" dans 3 onglets après sans recopier les macros de l'onglet "prétravail" et à renommer ces 3 nouvels onglets en "Vt", "TVA", "Clt" puis ensuite à y appliquer des macros spécifiques à chaque onglet comme suit:
* Pour l'onglet "Vt", réorganiser l'ordre des colonnes pour obtenir Date / Pièce/ Cpte Vente (attention cellule calculer) / Nom client / Vide / HT
* Pour l'onglet "TVA", réorganiser l'ordre des colonnes pour obtenir Date / Pièce/ Cpte TVA / Nom client / Vide / TVA (attention cellule calculer)
* Pour l'onglet "Clt", réorganiser l'ordre des colonnes pour obtenir Date / Pièce/ Code client / Nom client / TTC
Par ailleurs, l'application des macros est très lente alors que mon fichier de base ne contient que 300 lignes (que j'ai limité ici à une centaine).
Je suis débutante en la matière et je recherche désespéramment sur internet mais....!!!!
Mon fichier est trop volumineux pour tenir en pièce jointe... il fait 47,9 Mo !!! J'ai forcément un problème lié aux macros...mais qu'est-ce qui est redondant !!! je vous fourni le fichier de base sans les macros et mes macros ci-dessous:
Sub REORGANISATION()
Dim DerLgn As Integer
Dim Lgn As Integer
'Désactiver le raffraichissement d'écran
Application.ScreenUpdating = False
'Supprimer colonnes inutiles
Range("C:C,H:K,M:N").Delete
'Insérer colonne en B
Columns(2).Insert
'Calcul la TVA collectée dans la colonne B
Range("B2:B" & [F65536].End(xlUp).Row).FormulaR1C1 = "=RC[-1]-RC[1]"
'Trouver le code de vente
Range("I:I").FormulaLocal = "=recherchev(H:H;article;2;FAUX)"
'Renommer des colonnes
Range("A1").Value = "TTC"
Range("B1").Value = "TVA"
Range("C1").Value = "HT"
Range("D1").Value = "Pièce"
Range("E1").Value = "Code client"
Range("F1").Value = "Nom client"
Range("G1").Value = "Date"
Range("H1").Value = "Code article"
Range("I1").Value = "Cpte vente"
Range("J1").Value = "Tx TVA"
Range("J1").Value = "Cpte TVA"
' Supprimer les lignes dont la colonne A contient Facture
With ActiveSheet.Range("A1").CurrentRegion
.AutoFilter field:=1, Criteria1:="Facture"
.Offset(1, 0).EntireRow.Delete
.AutoFilter
End With
' Calculer le taux de TVA dans colonne J et y attribuer un compte de TVA (445710 pour 0,2 - 445713 pour 0,055 - 445714 pour 0,1
Columns("J:J").Select
Selection.FormulaR1C1 = "=ROUND(RC[-8]/RC[-7],3)"
Columns("K:K").Select
Selection.FormulaR1C1 = "=IF(RC[-1]=0.2,445710,IF(RC[-1]=0.055,445713,IF(RC[-1]=0.1,445714,471000)))"
' Copier cet onglet dans un nouvel onglet situé juste après
Worksheets("prétravail").Copy After:=Worksheets("prétravail")
'Réactiver le raffraichissement d'écran
Application.ScreenUpdating = True
End Sub