< 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