Sumifs userform VBA
Bonsoir
J'ai une question sur le code que je veux remplacer la valeur de 2018 par textbox3 mais elle n'a pas été définie avec moi la valeur vient dans textbox1 zéro
Private Sub UserForm_Initialize()
ur = Range("A" & Rows.Count).End(xlUp).Row
Me.TextBox1 = Evaluate("sumifs(B2:B" & ur & ",A2:A" & ur & ",2018,C2:C" & ur & ",""SI"")")
End Subpar exemple
Private Sub UserForm_Initialize()
ur = Range("A" & Rows.Count).End(xlUp).Row
Me.TextBox1 = Evaluate("sumifs(B2:B" & ur & ",A2:A" & ur & ",Me.TextBox3,C2:C" & ur & ",""SI"")")
End SubBonjour Mody,
Que contient TextBox3 à l'initialisation de l'USF
Sinon pour le code, il est bien de passer par une variable de type String
ur = Range("A" & Rows.Count).End(xlUp).Row
sForm = "sumifs(B2:B" & ur & ",A2:A" & ur & "," & Me.TextBox3 & ",C2:C" & ur & ",""SI"")"
Debug.Print sForm
Me.TextBox1 = Evaluate(sForm)A+
Bonsoir
Merci, je l'ai résolu grâce à ce merveilleux code
Puis-je ajouter un autre paramètre combobox1 "f:f"
Par exemple, j'ai essayé d'y ajouter un autre critère, mais il n'a pas répondu
ur = Range("A" & Rows.Count).End(xlUp).Row
sForm = "sumifs(B2:B" & ur & ",A2:A" & ur & "," & Me.TextBox3 & ",f2:f" & ur & "," & Me.combobox1 & ",C2:C" & ur & ",""SI"")"
Debug.Print sForm
Me.TextBox1 = Evaluate(sForm)
Re,
Si je posais la question, c'est que je pense qu'il manquait mes guillemets CHR(34) dans le précédent code
A voir avec celui-là en plus de la Combox1
Dim sForm As String, Ur As Long
Ur = Range("A" & Rows.Count).End(xlUp).Row
sForm = "sumifs(B2:B" & Ur & ",A2:A" & Ur & "," & Chr(34) & Me.TextBox3.Value & Chr(34) _
& ",F2:F" & Ur & "," & Chr(34) & Me.ComboBox1.Value & Chr(34) & ",C2:C" & Ur & ",""SI"")"
Debug.Print sFormA+
Bonsoir Bruno M45
Bien joué
C'est ce que je veux
chouette code
Je vous souhaite le succès
Bonjour
Quel est le problème avec ce code dans la zone de textbox14 Le résultat de la valeur est juste la valeur de la feuille 2 de ("facture de vente") sans la soustraire de la feuille 1 ("reçu") Notez cette équation sumifs soustraire la feuille 1 ("Encaissement") de la feuille 2 de ("Facture de vente")
Private Sub test2()
'ThisWorkbook.Activate
Sheet1.Activate
Dim sForm As String, sForm1 As String, Ur, Ur1 As Long
'totRows = Worksheets("Bd").Range("A1").CurrentRegion.Rows.Count
Ur = Sheet1.Range("b" & Rows.Count).End(xlUp).Row
sForm = "sumifs(f2:f" & Ur & ",b2:b" & Ur & "," & Chr(34) & Me.TextBox1.Value & chr(34) _
& ",r2:r" & Ur & "," & Chr(34) & Me.ComboBox2.Value & Chr(34) & ",s2:s" & Ur & ",""Cashing"")"
Sheet2.Activate
Ur1 = Sheet2.Range("b" & Rows.Count).End(xlUp).Row
sForm1 = "sumifs(f2:f" & Ur1 & ",b2:b" & Ur1 & "," & Chr(34) & Me.TextBox1.Value & Chr(34) _
& ",r2:r" & Ur1 & "," & Chr(34) & Me.ComboBox2.Value & Chr(34) & ",s2:s" & Ur1 & ",""sale invoice"")"
Me.TextBox14.Value = Evaluate(sForm1) - Evaluate(sForm)
End SubEdit modo : code entre balises SVP
Bonjour Mody
1) merci de mettre le code donné entre balises SVP
2) Vous pouvez utiliser "Debug.Print sForm" dans votre code pour savoir ce que contient votre variable
A+
Private Sub test2()
'ThisWorkbook.Activate
Sheet1.Activate
Dim sForm As String, sForm1 As String, Ur, Ur1 As Long
'totRows = Worksheets("Bd").Range("A1").CurrentRegion.Rows.Count
Ur = Sheet1.Range("b" & Rows.Count).End(xlUp).Row
sForm = "sumifs(f2:f" & Ur & ",b2:b" & Ur & "," & Chr(34) & Me.TextBox1.Value & chr(34) _
& ",r2:r" & Ur & "," & Chr(34) & Me.ComboBox2.Value & Chr(34) & ",s2:s" & Ur & ",""Cashing"")"
Sheet2.Activate
Ur1 = Sheet2.Range("b" & Rows.Count).End(xlUp).Row
sForm1 = "sumifs(f2:f" & Ur1 & ",b2:b" & Ur1 & "," & Chr(34) & Me.TextBox1.Value & Chr(34) _
& ",r2:r" & Ur1 & "," & Chr(34) & Me.ComboBox2.Value & Chr(34) & ",s2:s" & Ur1 & ",""sale invoice"")"
Me.TextBox14.Value = Evaluate(sForm1) - Evaluate(sForm)
Debug.Print sForm ,sForm1
End SubBonjour BrunoM45
Je mets le code "Debug.Print sForm" et le résultat est le même
Le problème vient de ce code
Sheet1.Activate
Ur = Sheet1.Range("b" & Rows.Count).End(xlUp).Row
Sheet2.Activate
Ur1 = Sheet2.Range("b" & Rows.Count).End(xlUp).Row
Récupère la sortie dans textbox14 uniquement en fonction du dernier événement
Ur1 = Sheet2.Range("b" & Rows.Count).End(xlUp).Row
sForm1 = "sumifs(f2:f" & Ur1 & ",b2:b" & Ur1 & "," & Chr(34) & Me.TextBox1.Value & Chr(34) _
& ",r2:r" & Ur1 & "," & Chr(34) & Me.ComboBox2.Value & Chr(34) & ",s2:s" & Ur1 & ",""sale invoice"")"
Me.TextBox14.Value = Evaluate(sForm1) - Evaluate(sForm)Private Sub test()
Dim sForm As String, sForm1 As String, Ur As Long
Dim ws As Worksheet
Application.ScreenUpdating = False
Set ws = Sheets("Cashing")
Ur = Sheet4.Range("b" & Rows.Count).End(xlUp).Row
sForm = "sumifs(f2:f" & Ur & ",b2:b" & Ur & "," & Chr(34) & Me.TextBox1.Value & Chr(34) _
& ",r2:r" & Ur & "," & Chr(34) & Me.ComboBox2.Value & Chr(34) & ",s2:s" & Ur & ",""Cashing"")"
Set ws = Sheets("sale invoice")
Ur = Sheet12.Range("b" & Rows.Count).End(xlUp).Row
sForm1 = "sumifs(f2:f" & Ur & ",b2:b" & Ur & "," & Chr(34) & Me.TextBox1.Value & Chr(34) _
& ",r2:r" & Ur & "," & Chr(34) & Me.ComboBox2.Value & Chr(34) & ",s2:s" & Ur & ",""sale invoice"")"
Debug.Print sForm, sForm1
Me.TextBox14.Value = Evaluate(sForm1) - Evaluate(sForm)
Application.ScreenUpdating = True
End Sub
Bonjour BrunoM45
Je mets le code "Debug.Print sForm" et le résultat est le même
Le problème vient de ce code
Set ws = Sheets("Cashing")
Ur = Sheet4.Range("b" & Rows.Count).End(xlUp).Row
Set ws = Sheets("sale invoice")
Ur1 = Sheet12.Range("b" & Rows.Count).End(xlUp).Row
Récupère la sortie dans textbox14 uniquement en fonction du dernier événement
Set ws = Sheets("sale invoice")
Ur = Sheet12.Range("b" & Rows.Count).End(xlUp).Row
sForm1 = "sumifs(f2:f" & Ur & ",b2:b" & Ur & "," & Chr(34) & Me.TextBox1.Value & Chr(34) _
& ",r2:r" & Ur & "," & Chr(34) & Me.ComboBox2.Value & Chr(34) & ",s2:s" & Ur & ",""sale invoice"")"
Debug.Print sForm, sForm1
Me.TextBox14.Value = Evaluate(sForm1) - Evaluate(sForm)
Application.ScreenUpdating = True