Ahoj prosim o pomoc, mam problem s VBA v Excelu. Potrebuji porovnat data z jednoho listu s daty v druhem listu.
Napr. mam v prnim listu tablku kde jsou nazev, vyrobce a kusy a v druhem listu to same, akorat ze kdyz ve druhem listu bude neco identickeho nazvu, tak potrebuji odecist kusy z druheho listu od kusu z prvniho listu a mam velky problem toto zapsat pres VBA, predem dekuji za rady.
kluluk
// Změna názvu tématu. Původní název "VBA Excel" svou nulovou informační hodnotou porušoval pravidla tohoto fóra
// mike007
			
									
									
						Excel: potřebuji makro pro porovnání dat Vyřešeno
- mike007
 - Master Level 7.5

 - Příspěvky: 5860
 - Registrován: srpen 07
 - Bydliště: Pardubice
 - Pohlaví: 

 - Stav:
		Offline
 - Kontakt:
 
Re: Excel: potřebuji makro pro porovnání dat
Úplně nejlepší bude když sem vložíš excelový sešit s daty, aby jsme mohli udělat makro na míru.
			
									
									Nejlepší hra je Excel!
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy prosím pište do fóra. Od toho tu je.
						• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy prosím pište do fóra. Od toho tu je.
 Re: Excel: potřebuji makro pro porovnání dat
													
						
			
			
			
			Tady vkladam excelovy soubor, proste potrebuji hlidat kdyz to co jsem napsal v druhem listu bude odpovidat necemu co je v prvnim listu, tak aby se odecetly kusy. kusy z prvniho listu - kusy z druheho listu.
diky moc
							diky moc
- Přílohy
 - 
			
		
		
				
- Porovnani.xls
 - (20 KiB) Staženo 205 x
 
 
- 
				navstevnik
 - Level 4

 - Příspěvky: 1142
 - Registrován: srpen 08
 - Pohlaví: 

 - Stav:
		Offline
 
Re: Excel: potřebuji makro pro porovnání dat
V priloze je mozne reseni, zapsanim hodnoty Kusu v polozce na listu2 je volana udalostni procedura, ktera vyhleda na listu1 odpovidajici polozku. Pokud je na listu1 duplicitni vyskyt polozky Nazev/Vyrobce, pak je pocet z odpovidajici polozky na listu2 odecten od prvniho vyskytu. Dale je nutna shoda nazvu a vyrobce na obou listech.
							- Přílohy
 - 
			
		
		
				
- PorovnaniDoplneno.xls
 - (40 KiB) Staženo 471 x
 
 
Re: Excel: potřebuji makro pro porovnání dat
Mnohokrat dekuji. :-)
Vypada to vyborne, jen bych chtel jeste poprosit, zda by bylo mozne trochu mi objasnit kod? Abych to dokazal pripadne i modifikovat o dalsi sloupce a nebo podminku, abych nepretekl do zapornych cisel.
dekuji
kluluk
			
									
									
						Vypada to vyborne, jen bych chtel jeste poprosit, zda by bylo mozne trochu mi objasnit kod? Abych to dokazal pripadne i modifikovat o dalsi sloupce a nebo podminku, abych nepretekl do zapornych cisel.
dekuji
kluluk
- 
				navstevnik
 - Level 4

 - Příspěvky: 1142
 - Registrován: srpen 08
 - Pohlaví: 

 - Stav:
		Offline
 
Re: Excel: potřebuji makro pro porovnání dat
komentovana procedura:
			
									
									
						Kód: Vybrat vše
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'deklarace promennych
  Dim Cll As Range, SBlk As Range, OK As Boolean
  ' omezeni rozsahu promenne target na jednu bunku pri nazani bloku bunek
  Set Target = Target.Resize(1, 1)
  ' test, zda Target je ze sloupce C:C
  If Not Intersect(Target, Me.Range("c:c")) Is Nothing Then
    ' nastavi promennou OK na hodnotu False
    OK = False
    ' nastavit blok bunek na listu1
    With Worksheets("list1")
      Set SBlk = Intersect(.UsedRange, .Range("a:a"))
    End With
    ' prohledat sloupec A:A na listu1, hledat hodnotu z list2!Axx - nazev
    With SBlk
      Set Cll = .Find(Target.Offset(0, -2).Value, LookIn:=xlValues, LookAt:=xlWhole)
      If Not Cll Is Nothing Then
        ' nalezeno ve sloupci A:A, overit zda se shoduje i Vyrobek
        If Cll.Offset(0, 1).Value = Target.Offset(0, -1).Value Then
          ' snizit hodnotu kusu na listu1, kdyz bude vysledek >=0
          If Cll.Offset(0, 2).Value - Target.Value >= 0 Then
            Cll.Offset(0, 2).Value = Cll.Offset(0, 2).Value - Target.Value
          Else
            MsgBox "Vysledny stav je <0"
            ' vynulovat vlozenou hodnotu, potlacit prepocet a volani procedur
            Application.EnableEvents = False
            Target.Value = 0
            Application.EnableEvents = True
          End If
          OK = True
        End If
      End If
    End With
    Set Cll = Nothing
    Set SBlk = Nothing
    If Not OK Then MsgBox "Nenalezeno...blabla"
  End If
End SubRe: Excel: potřebuji makro pro porovnání dat
Parada diky moc akorat, bych jeste chtel poprosit, o pomoc kdybych si ted chtel pridat uplne na zacatek do sloupce A sloupec s nazvem identifikace. Aby to fungovalo i pro tento treti sloupec. To znamena ze to bude porovnavat identifikaci, nazev a vyrobce a kdyz budou stejne, tak to prepocita ty kusy. 
Ja bohuzel jeste nepochopil ten kod na tolik abych si to dokazal uspesne modifikovat, nejak se tu s tim peru. Diky moc
kluluk
			
									
									
						Ja bohuzel jeste nepochopil ten kod na tolik abych si to dokazal uspesne modifikovat, nejak se tu s tim peru. Diky moc
kluluk
- 
				navstevnik
 - Level 4

 - Příspěvky: 1142
 - Registrován: srpen 08
 - Pohlaví: 

 - Stav:
		Offline
 
Re: Excel: potřebuji makro pro porovnání dat
Identifikace - ma vyznam, pokud to je jedinecny udaj, pak postaci vyhledavat pouze podle identifikace. V tomto smyslu je upravena udalostni procedura listu 2:
			
									
									
						Kód: Vybrat vše
Private Sub Worksheet_Change(ByVal Target As Range)
' udalostni procedura snizi stav ks v prislusnem zaznamu na list1
' deklarace promennych
  Dim Cll As Range, SBlk As Range, OK As Boolean
  ' omezeni rozsahu promenne target na jednu bunku pri mazani bloku bunek
  Set Target = Target.Resize(1, 1)
  ' test, zda Target je ze sloupce D:D
  If Not Intersect(Target, Me.Range("d:d")) Is Nothing Then
    ' nastavi promennou OK na hodnotu False
    OK = False
    ' nastavit blok bunek na listu1
    With Worksheets("list1")
      Set SBlk = Intersect(.UsedRange, .Range("a:a"))
    End With
    ' prohledat sloupec A:A na listu1, hledat hodnotu z list2!Axx - identifikace
    With SBlk
      Set Cll = .Find(Target.Offset(0, -3).Value, LookIn:=xlValues, LookAt:=xlWhole)
      If Not Cll Is Nothing Then
        ' snizit hodnotu kusu na listu1, kdyz bude vysledek >=0
        If Cll.Offset(0, 3).Value - Target.Value >= 0 Then
          Cll.Offset(0, 3).Value = Cll.Offset(0, 3).Value - Target.Value
        Else
          MsgBox "Vysledny stav je < 0, blabla..."
          ' odstranit vlozenou hodnotu kusu na listu2, potlacit prepocet a volani procedury
          Application.EnableEvents = False
          Target.Value = vbNullString
          Application.EnableEvents = True
        End If
        OK = True
      End If
    End With
    Set Cll = Nothing
    Set SBlk = Nothing
    If Not OK Then MsgBox "Nenalezeno...blabla"
  End If
End SubRe: Excel: potřebuji makro pro porovnání dat
dobra tak identifikace neni spravny nazev, rikejme identifikaci tedy upresneni. Me jde ale o to jak si ohlidat kombinaci tri sloupcu.
dekuji
			
									
									
						dekuji
Re: Excel: potřebuji makro pro porovnání dat
Omlouvam se, ze to takhle komplikuji, ale v konecne fazi jsem dosel k tomu, ze potrebuju 4 sloupce: Nazev, Upresneni, Vyrobce, Kusu.
Jestli je neco duplicitni, se musi porovnavat v ramci 3 sloupcu (Nazev, Upresneni, Vyrobce).
Predchozi kod pro porovnavani 2 sloupcu byl skvely, ale ja ho nejak nedokazu upravit na 3 sloupce.
Pomuze mi prosim nekdo?
Dekuji kluluk
			
									
									
						Jestli je neco duplicitni, se musi porovnavat v ramci 3 sloupcu (Nazev, Upresneni, Vyrobce).
Predchozi kod pro porovnavani 2 sloupcu byl skvely, ale ja ho nejak nedokazu upravit na 3 sloupce.
Pomuze mi prosim nekdo?
Dekuji kluluk
- 
				navstevnik
 - Level 4

 - Příspěvky: 1142
 - Registrován: srpen 08
 - Pohlaví: 

 - Stav:
		Offline
 
Re: Excel: potřebuji makro pro porovnání dat
A je to jiz opravdu definitivni? Pokud ano, tak ti to upravim.
			
									
									
						Re: Excel: potřebuji makro pro porovnání dat
Ano tentokrat uz je to definitivni.
Dekuji
			
									
									
						Dekuji
- 
				
- Mohlo by vás zajímat
 - Odpovědi
 - Zobrazení
 - Poslední příspěvek
 
 
- 
				
- 
												Porovnaní sestavy + kde muže být problém? Příloha(y)
od Ribendik » 12 pro 2024 11:04 » v Rady s výběrem hw a sestavením PC - 2
 - 1267
 - 
						od Zivan
						Zobrazit poslední příspěvek 
12 pro 2024 12:26
 
 - 
												
 - 
				
- 
												PROSÍM potřebuji pomoc s výběrem bazar Pc
od Robrt » 15 říj 2025 21:40 » v Rady s výběrem hw a sestavením PC - 2
 - 2187
 - 
						od Robrt
						Zobrazit poslední příspěvek 
15 říj 2025 21:54
 
 - 
												
 - 
				
- 
												mpg x570 gaming edge wifi Potřebuji poradit jak na bot BIOSu Příloha(y)
od ManemanTV » 15 pro 2024 21:31 » v Problémy s hardwarem - 11
 - 5976
 - 
						od ManemanTV
						Zobrazit poslední příspěvek 
16 pro 2024 18:18
 
 - 
												
 - 
				
- 2
 - 13957
 - 
						od Snekment
						Zobrazit poslední příspěvek 
29 led 2025 15:05
 
 - 
				
- 1
 - 7023
 - 
						od atari
						Zobrazit poslední příspěvek 
07 kvě 2025 09:41
 
 
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 17 hostů

