Bonjour,
D'abord je tenais à vous dire merci pour tout ce que vous faites pour nous, "petit novice"
J'ai un tableau structuré de la colonne A à CB sur environ 300 à plus en fonction des années. Chaque année, je suis obligé d'effacer manuellement toutes les données du tableaux pour repartir à zéro mais malgré cela , plusieurs problèmes se posent:
1- quand je supprime manuellement toutes les données de mon tableau de l'onglet VE, lorsque j'enregistre ma facture (onglet FACTURE) via un bouton avec le code suivant, ma facture s'enregistre bien mais pas dans la première ligne de mon tableau structuré mais en dessous, du coup ma ligne ne fait pas parti de mon tableau.
2- Lors du premier enregistrement de la facture , si je crée une ligne vide avec une facture 0 au préalable ( pour paré à mon problème 1), l'enregistrement de ma facture 1 se fait bien dans le tableau mais une de mes formules change et fausse toute la colonne sauf si je la corrige manuellement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 Sub VALIDER() Dim Titres(), Dic As New Dictionary, c As Long, TFact(), L As Long, TRés(), item Titres = Feuil4.[A2:BJ2].Value 'fait correspondre entêtes de VE avec produits Feuil2 TFact = Feuil1.[A12:J44].Value ReDim TRés(1 To 1, 1 To UBound(Titres, 2)) TRés(1, 1) = TFact(1, 4) 'n° de facture TRés(1, 2) = TFact(1, 1) 'date TRés(1, 3) = TFact(1, 5) ' N° client TRés(1, 4) = NomClient(TFact(1, 5)) ' Nom client TRés(1, 5) = TFact(31, 10) ' TTC TRés(1, 6) = TFact(29, 10) 'HT TRés(1, 7) = TFact(30, 5) 'TVA 5.5% TRés(1, 8) = TFact(31, 5) 'TVA 7% TRés(1, 9) = TFact(32, 5) 'TVA 10% TRés(1, 10) = TFact(33, 5) 'TVA 20% For c = 11 To 61 'produits ligne 2 VE For L = 4 To 27 'lignes 15 to 38 de factures If TFact(L, 2) = Titres(1, c) Then TRés(1, c) = TRés(1, c) + TFact(L, 10) End If Next Next c Feuil4.Cells(&H100000, 1).End(xlUp).Offset(1).Resize(, 61).Value = TRés 'Déclaration des variables Dim NomDossier As String Dim CheminDossier As String On Error GoTo 1 'Nom de dossier NomDossier = Application.InputBox("Dossier Enregistrement :", "Dossier") CheminDossier = "H:\COMPTABILITE\Factures VE\" & NomDossier & "\" If NomDossier = "" Then Exit Sub 'Enregistrement au format PDF ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ CheminDossier & "Facture_" & Range("J1").Value & ".pdf", quality:= _ xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _ from:=1, To:=1, openafterpublish:=False 1 MsgBox "Facture " & Range("J1").Value & " archivée avec succès." Dim N N = Right(Range("J1").Value, 5) 'On incrémente le numéro de la facture Range("J1").Value = Range("J1").Value + 1 Range("J43").Select Selection.ClearContents Range("H6").Select End Sub
La formule de basse, présente dans la ligne facture 0 :Mais lors de l'enregistrement de la facture suivante, elle passe à :
Code formule : Sélectionner tout - Visualiser dans une fenêtre à part =SI(SOMME($G3:$J3)=0;"";INDEX(ListeDesTaux;1;EQUIV(GRANDE.VALEUR($G3:$J3;1);$G3:$J3;0)))Je ne comprends pas pourquoi "ligne 5" alors que c'est la ligne 4 qui est concernée.
Code formule : Sélectionner tout - Visualiser dans une fenêtre à part =SI(SOMME($G4:$J5)=0;"";INDEX(ListeDesTaux;1;EQUIV(GRANDE.VALEUR($G4:$J5;1);$G4:$J5;0)))
Si je corrige manuellement, plus aucun problème pour les lignes suivantes, mais rebelotte l'année suivante.
J'ai beau chercher mais je ne trouve pas de solution définitive à l'un ou l'autre de mes problèmes. Auriez vous une idée? Où est ce que je me suis trompée?
Merci par avance pour votre aide.
Partager