< návrat zpět
MS Excel
Téma: zmena vo vba 
Zaslal/a loksik.lubos 5.3.2025 19:27
Dobry den potreboval by poradit potrebujem potrebujem zmenit stlpec len sa mi nedary ktora hodnota to. S posledneho ciselneho harka mi zratava hodnotu stlpec G a vynasobi sa s zo stlpcom J a vysledok vlozi na harok inventar. Ja potrebujem aby vyratalo hodnotu G a vynasoby stlpec P
Sub Inventar()
Dim dic As Object
Dim list As Worksheet
Dim Oblast As Range, Bunka As Range
Dim Citac As Integer
Dim Klic As Variant
Set dic = CreateObject("Scripting.Dictionary")
Set list = ThisWorkbook.Worksheets(Worksheets.Count)
'Debug.Print list.Name
If Not IsNumeric(list.Name) Then GoTo Chyba
Select Case CInt(list.Name)
Case 1 To 31
Set Oblast = Union(list.Range("C13").Resize(51), list.Range("C76").Resize(52))
For Each Bunka In Oblast
If Bunka.Value <> "" Then
If Not dic.Exists(Join(Array(Bunka.Value, Bunka.Offset(, 7).Value, Bunka.Offset(, 9).Value), "•")) Then
dic.Add Join(Array(Bunka.Value, Bunka.Offset(, 7).Value, Bunka.Offset(, 9).Value), "•"), Bunka.Offset(, 4).Value
Else
dic(Join(Array(Bunka.Value, Bunka.Offset(, 7).Value, Bunka.Offset(, 9).Value), "•")) = dic(Join(Array(Bunka.Value, Bunka.Offset(, 7).Value, Bunka.Offset(, 9).Value), "•")) + Bunka.Offset(, 4).Value
End If
End If
Next Bunka
Application.ScreenUpdating = False
With Worksheets("Inventár")
For Each Klic In dic
.Range("C5").Offset(Citac).Value = Split(Klic, "•")(0)
.Range("C5").Offset(Citac, 1).Value = dic(Klic)
.Range("C5").Offset(Citac, 2).Value = Split(Klic, "•")(2)
.Range("C5").Offset(Citac, 3).Value = dic(Klic) * Split(Klic, "•")(1)
Citac = Citac + 1
Next Klic
.Range("C5").Offset(Citac + 2, 3).Formula = "=SUM(" & .Range("C5").Offset(, 3).Address & ":" & .Range("C5").Offset(Citac, 3).Address & ")"
.Range("C5").Offset(Citac + 1, 3).Value = .Range("C5").Offset(Citac + 1, 3).Value
.Range("C5").Offset(Citac + 2, 2).Value = "Celkom:"
End With
Application.ScreenUpdating = True
Case Else
Chyba:
MsgBox "Nesprávný název listu", vbCritical, "CHYBA !!!"
End Select
Set Oblast = Nothing
Set list = Nothing
Set dic = Nothing
End Sub

Takže z makra čítam že
C (Bunka) je nejaký názov tovaru
J (Bunka.Offset(, 7)) ??? cena ???
L (Bunka.Offset(, 9).Value)) ??? jednotka ???
G (Bunka.Offset(, 4)) ??? množstvo ???
Takže by malo stačiť J zmeniť na Bunka.Offset(, 13)
Ale musíme to prerobiť na polia, a nie Offsety. Hrúúúúza toľko Offsetov.
Budem potrebovať prílohu.
Každopádne dnes mám naplánovaných dosť vecí. Pošlite, uvidím, či stihnem.
citovat

Posielam Vam cely zosit. Musi to fungovat len vzdy s posledneho ciselneho harka. Potrebujem to zmenit na nakupnu cenu stlpec P predtym to bola predajna cena
citovat

No to makro by bolo treba prekopať komplet celé. A na to fakt nemám čas. Skontrolujte si, či je to OK.
V module ThisWorkbook som pridaním 2 do názvu vypol Workbook_Open a Workbook_AfterSave.
citovat

Dakujem za ochotu a vas cas
citovat