< návrat zpět

MS Excel


Téma: Zápis do 2 listů rss

Zaslal/a 6.8.2010 10:01

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. 30

Příloha: zip2095_zapis-dat.zip (11kB, staženo 21x)
Zaslat odpověď >

#002096
Začátečník
Možná by bylo vhodné několik upřesnění.
Kde bude uložen seznam osob (předpokládám list Známka) a také předpokládám, že budete chtít načítat tento seznam do pole ve formuláři.

Loncitovat
#002097
Začátečník
Tak jsem si odpověděl sám. 7

Váše komletní makro s mými drobnými úpravami.


Private Sub CommandButton1_Click()
Dim rd As Single
Dim cislo As Single
rd = ActiveSheet.UsedRange.Rows.Count + 1
Cells(rd, 1) = ComboBox2.Text
If CheckBox1.Value = True Then Cells(rd, 3) = "ANO" Else Cells(rd, 3) = "NE"
cislo = TextBox2
Cells(rd, 4) = cislo
Cells(rd, 5) = TextBox1

Call Dopln_do_znamka(ComboBox2.Text, cislo)
End Sub

Private Sub CommandButton2_Click()
Me.Hide
End Sub

Private Sub UserForm_Activate()
ComboBox2.Clear
Call nacti_seznam
'ComboBox2.AddItem "Adam Janků"
'ComboBox2.AddItem "Petr Král"
'ComboBox2.AddItem "Karel Nekrál"
End Sub

Private Sub Dopln_do_znamka(Jmeno, znamka)

Dim rd_start As Single
Dim sl_start As Single

rd_start = 6
sl_start = 3

While Sheets("Známka").Cells(rd_start, 2) <> Empty
If Sheets("Známka").Cells(rd_start, 2) = Jmeno Then
While Sheets("Známka").Cells(rd_start, sl_start) <> Empty
sl_start = sl_start + 1
Wend
Sheets("Známka").Cells(rd_start, sl_start) = znamka
Exit Sub
End If
rd_start = rd_start + 1
Wend
End Sub

Private Sub nacti_seznam()

Dim rd As Single
rd = 6

While Sheets("Známka").Cells(rd, 2) <> Empty
ComboBox2.AddItem Sheets("Známka").Cells(rd, 2)
rd = rd + 1
Wend

End Sub


Loncitovat
#002098
avatar
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ý dencitovat
#002099
Začátečník
NZ,
Budu o tom uvažovat, ale spíše mírně pokročilý. 24 28

Loncitovat
#002100
avatar
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 ?citovat
#002101
avatar
Ž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.citovat
#002102
Začátečník
Přemýšlím o nejjednodušším řešení. Pokud jde pouze o informaci, pak by bylo vhodné vložit místo hodnoty vzorec, který by v případě platné hodnoty tuto zobrazil, v případě výmazu známky by pak vložil hodnotu:
např. -1.
Pokud by však někdo odstranil celý řádek i s daty (tedy "Odstranit řádek") vznikaly by pak chyby s neexistujícím odkazem.

Ovšem vše jde také řešit elegantněji a to zamčením sešitu (listu) proti úpravám.

Řešení je na Vás.

Loncitovat
#002125
avatar
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 Subcitovat
#002126
avatar
V ComboBox3 by samozřejmě byly na výběr měsíce. Díky 2citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

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.

On-line nástroje