Ještě jsem pátral ve starších vláknech a narazil na podobný případ. Opět jsi byl u toho ty Poki jako řešitel a já využil onen příklad.
------------------------------------------------------
Private Sub TextBox6_AfterUpdate()
Dim i As Integer
For i = 3 To Application.WorksheetFunction.CountA(Range("C:C"))
If TextBox6 = Cells(i, 3) Then
MsgBox "Tato hodnota je již obsažena (na řádku č. " & i & ")." & vbCrLf & vbCrLf & "Zkus to znova...", vbCritical, "POZOR"
End If
Next
End Sub
-----------------------------------------------------
Tohle je přesně to, co jsem hledal. Akorát je menší problém v tom, že když mi vyskočí MsgBox s hlášením, a já jej potvrdím, vrátím se do formuláře, zůstává hodnota v daném poli a teď již mi nic nebrání ji tam zapsat jako duplicitu. Napadá mě jen to, že po odkliknutí MsgBoxu se ti to pole, které je "hlídáno vymazalo a ty jsi musel hodnotu zadávat znovu...kdyby jsi to chtěl teddy obejít předchozím způsobem nešlo by to ... je to OK ?
Díky
Prosím o radu. Při zadávání dat přes formulář, potřebuji zajistit, aby se mi nevyplnovaly duplicity např. ve sloupci "B". Ve kterém zadávám kupříkladu rodné číslo. Jestliže nastane takový případ, nechť vyskočí MsgBox s textem, který mě upozorní, že už jeden takový záznám se stejným rodným číslem v databázi je.
Děkuji za pomoc.
Díky moc, Poki !!!
Rád bych požádal o odbornou radu jak zabránit tomu, aby mi kód viz. níže nebral hodnotu 0 jako prázdnou buňku !!! Děkuji
Private Sub Dopln_do_hodnoceni(jmeno, Hodnoceni)
Dim rd_start As Single
Dim sl_start As Single
rd_start = 3
sl_start = 4
While Sheets(ComboBox5.Value).Cells(rd_start, 2) <> Empty
If Sheets(ComboBox5.Value).Cells(rd_start, 2) = jmeno Then
While Sheets(ComboBox5.Value).Cells(rd_start, sl_start) <> Empty 'Tento výraz potřebuji nahradit ! V buňkách jsou hodnoty 0 a 100
sl_start = sl_start + 1
Wend
Sheets(ComboBox5.Value).Cells(rd_start, sl_start) = Hodnoceni
Exit Sub
End If
rd_start = rd_start + 1
Wend
End Sub
Zdravím, v příloze je soubor, ve kterém se po stisknutí tlačítka tisk, zobrazí formulář, který bych potřeboval naplnit daty z databáze. Samotny tisk formuláře je jednoduchý. Měl jsem na mysli dvě možnosti jak to provést, jenže ani k jedné nemám dostatečné znalosti :-)
1. Formulář se naplní údaji z řádku, který jsem si označil.
2. Ve formuláři jsou připravena jména, u kterých zvolím měsíc hodnocení a automaticky se mi zobrazí v ComboBoxu "Číslo úkolu" ,dle daného měsíce s příslušnými daty.
Prosím o radu.
Děkuji za Vaše návrhy jak postupovat.
Zdravím starousedlíky, měl bych na ás dotaz jak vyřešit problém při zápisu dat. Problém je kódem
Sheets("List1").UsedRange.Rows.Count +1
Takto se zapisují jednotlivá data do příslušných řádků po sobě, jenže problém je při prvním zápise, kdy se mi vyplní řádek nahodile a ne tam kam chci.
Zkoušel jsem to upravit po svém ,ale bez výsledku.
Dim radek_primarni As Single
Dim radek_zapis As Single
rd_primarni = 2 + 1 (když bych chtěl začínat zápis na třetím řádku)
rd_zapis = Sheets("List1").rd_primarni.Rows.Count + 1
Děkuji za opravu nebo vyřešení.
S pozdravem
Šlape to jako po másle. Díky Poki.
Něktěrým není dáno se VBA naučit ...
Díky za radu Poki, mohl by jsi to prosím zkusit na ostro u přiloženého souboru ? Děkuji. Jinak bych ještě rád vyřešil jeden problém, v případě sdíleného sešitu, když v tomto formuláři pracuje více uživatelů, tak se uloží jen to, kdo otevřel tento sešit první, ostatním se tyto změny neuloží. Nelze to nějak ošetřit. Děkuji za radu.
Mohli by jste mi prosím Vás poradit, jak upravit kód pro následující situaci.
V ComboBox3 mám nastaveny měsíce Leden-Prosinec. V sešitu jsou vytvořeny listy se stejnými názvy (leden-prosinec). Data z ComboBox3 se zapisují do sloupce E. Rád bych se dopídil k tomu, aby se data zapisovala do příslušného listu, podle toho, který měsíc se zadá do ComboBox3. Kód je vytvořen pro zápis do jednoho listu a nezajímá ho tedy, co je v Combo3.
Děkuji za úpravu.
Kód pro zápis.
Private Sub Dopln_do_hodnoceni(Jmeno, Hodnoceni)
Dim rd_start As Single
Dim sl_start As Single
rd_start = 3
sl_start = 4
While Sheets("Červenec").Cells(rd_start, 2) <> Empty
If Sheets("Červenec").Cells(rd_start, 2) = Jmeno Then
While Sheets("Červenec").Cells(rd_start, sl_start) <> Empty
sl_start = sl_start + 1
Wend
Sheets("Červenec").Cells(rd_start, sl_start) = Hodnoceni
Exit Sub
End If
rd_start = rd_start + 1
Wend
End Sub
V ComboBox3 by samozřejmě byly na výběr měsíce. Díky
A jak by se upravil kód, pro zápis, kdybych měl vytvořené listy červenec, srpen, září, říjen atd. a data by se zapisovala do jednotlivých listů podle toh, co by se doplnilo třeba do ComboBox3
Kód pro zápis.
Private Sub Dopln_do_hodnoceni(Jmeno, Hodnoceni)
Dim rd_start As Single
Dim sl_start As Single
rd_start = 3
sl_start = 4
While Sheets("Červenec").Cells(rd_start, 2) <> Empty
If Sheets("Červenec").Cells(rd_start, 2) = Jmeno Then
While Sheets("Červenec").Cells(rd_start, sl_start) <> Empty
sl_start = sl_start + 1
Wend
Sheets("Červenec").Cells(rd_start, sl_start) = Hodnoceni
Exit Sub
End If
rd_start = rd_start + 1
Wend
End Sub
Že by se dle makra vytvářel automaticky hypertextový odkaz na řádek v listu1, kde je daná známka uvedena. V případě, že se řádek v listu1 jedna vymaže, hyúertextový odkaz hodí chybovou hlášku a já budu vědět, že tento řádek někdo smazal a známka by se tedy neměla počítat.
Teď mě ještě napadlo. Když smažu záznam v listu 1, kde zadávám hodnoty, propsaná známka v listu "Známky" mi tam zůstane. Ale žádný záznam tomu v listu1 neodpovídá. Šlo by nějak propojit hypertextovým odkazem známku v listu "známky" na daný řádek, který obsahuje jméno, zaplatil, známku, poznámku ?
Tohle bylo opravdu rychlé. Díky za Váš čas a ochotu. Snad by jste si už mohl přepsat nick, ne ? Třeba na pokročilý :-) Já se z pozice nováčka snad nehnu ... Pěkný den
Zdravím, poradil by mi někdo z Vás, jak zapisovat hodnotu z formuláře současně do dvou listů ?
Přiložen sešit s příkladem. Chtěl bych docílit toho, aby se hodnoty z pole známka, zapisovaly jak do ("list1") tak do ("známka"), podle toho, kolikáté je to hodnocení. Takže s každým dalším hodnocením člověka, by se automaticky vyplnovaly hodnoty pole známka do postupného pořadí.
Děkuji za rady.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.