Je cherche un pro de vba pour m aider j ai quelques problemes avec ma macro : un pour set la range et un pour appliquer la formule sumproduct, quelqu un pourrait regarder la macro est me dire ce qui ne va pas.
Sub RemplirTab()
Dim I As Integer
Dim NbClients As Double
NbClients = ThisWorkbook.Worksheets("Summary").Range("b65536").End(xlUp).Row
NbClients = NbClients - 6
Dim X As Integer
Set Range1 = ThisWorkbook.Worksheets("Summary").Range(Cells("C6"), Cells(NbClients, 0))
Set Range2 = ThisWorkbook.Worksheets("Summary").Range(Cells("F6"), Cells(NbClients, 0))
If ThisWorkbook.Worksheets("Analysis").Range("b6").Value = "belu" Then
ThisWorkbook.Worksheets("Analysis").Range("c6").Value = Application.WorksheetFunction.SumProduct(range1""Belu"",range2""V"")
End If
If ThisWorkbook.Worksheets("Analysis").Range("b6").Value = "Fina" Then
ThisWorkbook.Worksheets("Analysis").Range("c6").Value = Application.WorksheetFunction.SumProduct(range1""Fina"",range2""L"")
End If
Sans fichier ça va être difficile car on ne sait pas trop ce que tu veux faire !?
En tout cas si tu définit une plage par Set
Tu ne peux en aucun cas concaténer un objet avec une valeur
Je suis desole je suis encore un debutant avec VBA et ca la premiere fois que je voulais selectionner une Range. J ai suivi vos conseils cependant j ai encore un probleme:
Sub RemplirTab()
Dim I As Integer
Dim NbClients As Double
NbClients = ThisWorkbook.Worksheets("Summary").Range("b65536").End(xlUp).Row
NbClients = NbClients - 6
Dim X As Integer
Dim Range1 As Range
Dim Range2 As Range
Set Range1 = ThisWorkbook.Worksheets("Summary").Range(Cells(6, 3), Cells(NbClients, 3))
Set Range2 = ThisWorkbook.Worksheets("Summary").Range(Cells(6, 6), Cells(NbClients, 6)) Je ne comprends pas j ai le message d erreur suivant: "Application defined or object defined error"
If ThisWorkbook.Worksheets("Analysis").Cells(6, 2).Value = "Belu" Then
ThisWorkbook.Worksheets("Analysis").Range("c6").Value = Application.WorksheetFunction.SumProduct(Range1, "Belu")
End If
If ThisWorkbook.Worksheets("Analysis").Range("b6").Value = "Fina" Then
ThisWorkbook.Worksheets("Analysis").Range("c6").Value = Application.WorksheetFunction.SumProduct(Range1, "Fina")
End If
Si cela ne va pas il faudra revenir avec un classeur et la macro.
Vérifier que nbClients soit supérieur à 0
Code:
With ThisWorkbook.Sheets("Summary")
Set Range1 = .Range(.Cells(6, 3), .Cells(nbclients, 3))
Set Range2 = .Range(.Cells(6, 6), .Cells(nbclients, 6))
End With
Comment coder cette formule sous VBA sachant que range1 va etre egal à Summary!B6:B65536 et range2 = Summary!J6 :J65536.
Je veux que le resultat soit ecrit dans une autre feuille regarder ce que j'ai fait:
ThisWorkbook.Worksheets("Analysis").Range("c6").Value = Application.WorksheetFunction.SumProduct(Range1 = "Belu" * Range1 = "V") , je ne sais pas comment la partie entre parenthese fonctionne. J'ai essayé de chercher sur internet mais en vain.
merci pour votre aide
Quand vous posez votre question car finalement après des heures d'énervement qui n'ont abouti à rien, vous devez vous résoudre à faire une demande d'aide publique.... N'oubliez pas que votre demande sera lue et relue par des centaines de gens. Certains pourront vous répondre, d'autres ne feront que la lire. Dans tous les cas, les contributeurs de ce Forum seront en face de votre problème et surtout de la manière dont vous vous adressez à eux. Un post qui commence par 'Je veux'... ou même 'Je voudrais' risque simplement d'aboutir à ce que le lecteur passe à un sujet suivant, sans même vous lire. Idem quand à la fin de votre exposé du problème, s'il n'y a même pas une formule de politesse, cela laisse présager que votre demande, une fois résolue, ne sera même pas suivie d'un simple 'Merci'
Excusez moi, je vous avouerais que j ai passé quelques heures sur ce probleme et que cette macro commence fortement a m'agacer.
Il est vrai que je ne vous ai pas remercier et je m en excuse. Merci pour tous ces conseils et votre aide qui m est tres precieuse.
Moi ce qui m'agace c'est de voir des post sans aucun signe d'amabilité.
Ceci dit pour ton problème: Ecrit la formule sommeProd dans une cellule, laisse la sélection sur la cellule
Dans l'éditeur VBE affiche la fenêtre Exécution (CTRL+G)
Dans cette fenêtre tape : "?ActiveCell.formulaR1C1" sans les guillemets mais avec le ?
Puis valide.
Cela te donneras le modèle à suivre pour l'écrire en VBA.