Bonjour à tous,
Je débute en vba et je me trouve face à un problème que je n'arrive pas à résoudre toute seule malgré des recherches sur le net.
Peut être que l'un d'entre vous aura la réponse.
Grace à l'entraide j'ai eu un fichier que j'essaie d'adapter à mes besoins.
Je suis prestataire de service.
J'ai une feuille (qui s'appelle ANALYSE DE PRODUCTION) avec un tableau qui fait 18 colonnes, la 1ere ligne de saisie est la 5.
J'y rentre différentes infos concernant les clients, dont les heures prévues à passer par les collaborateurs sur le dossier de chaque client et les heures réellement passées. Ceci afin d'analyser les temps de chaque collaboteur sur chaque client.
En colonne "o", je voudrais pouvoir voir le cumul (c'est à dire le solde) des heures prévues - heures passées qui sont inscrit dans la colonne précédente la "n" (par le biais d'une saisie dans 1 usf) pour un seul client après avoir faire un filtre automatique sur la colonne correspondant au nom du client.
J'ai trouvé la formule qui me permets de le faire :
=SOUS.TOTAL(9;$N$5:N5)
Je la recopie dans les cellules du dessous et tout marche bien, mon total s'ajuste bien en fonction des cellules visibles.
J'ai donc voulu la coder dans mon usf, j'ai crée une macro pour voir ce qu'il allait me dire et il en ressort :
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C14:RC[-1])"
J'ai donc ensuite mis ce code au niveau des lignes en gras ci-dessous dans la partie :
Et là rien ne va plus, il me met un message d'erreur qui me renvoie sur ces 4 lignes.
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 With Sheets("ANALYSE DE PRODUCTION") Nl = .Range("A65536").End(xlUp).Row + 1 'ligne ou j'écris .Range("l" & Nl).Value = TextBox2.Value 'Prix HT .Range("j" & Nl).Value = TextBox1.Value 'Heures .Range("c" & Nl).Value = ComboBox1.Value 'COLLABORATEUR .Range("d" & Nl).Value = ComboBox2.Value 'CLIENTS .Range("e" & Nl).Value = ComboBox3.Value 'FACTURE/AVOIR .Range("g" & Nl).Value = ComboBox4.Value 'Mission .Range("m" & Nl).FormulaR1C1 = "=RC[-1]-RC[-2]" .Range("F" & Nl).Value = TextBox4.Value 'N° Facture avoir .Range("h" & Nl).Value = ComboBox5.Value 'Tâches .Range("i" & Nl).Value = TextBox3.Value 'Complémnent d'intitulé .Range("A" & Nl).Value = DTPicker1.Value 'Date .Range("B" & Nl).Value = "S" & DatePart("ww", CDate(DTPicker1.Value), 2, 2) .Range("n" & Nl).Value = TextBox5.Value 'S .Range("p" & Nl).Value = TextBox6.Value 'N4 .Range("r" & Nl).Value = TextBox7.Value 'N3 .Range("t" & Nl).Value = TextBox8.Value 'N2 .Range("v" & Nl).Value = TextBox9.Value 'EC .Range("o" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C14:RC[-1])" .Range("q" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C16:RC[-1])" .Range("s" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C18:RC[-1])" .Range("u" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C20:RC[-1])" .Range("w" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C22:RC[-1])" End With
Le même problème se pose pour mes colonnes q, s, u et w.
En fait chaque colonne correspond à un collaborateur.
J'ai fait un essaie en enlevant le mot ActiveCell et là la formule marche mais evidement sur toutes les cellules et pas seulement les visibles.
Je tourne en rond.
Merci par avance
Vero911
Partager