< návrat zpět

MS Excel


Téma: Ukladanie hodnoty cez userform + xls súbor rss

Zaslal/a 25.6.2021 15:38

Zdravím,

mám dotaz mam userform kde si načítam data podla ID

moja otáka znie

ako si uložím do Hárok2 data ešte pred prepísaním ?

skúšal som ale nejde mi to ani trochu

Aktuálny kód čo sa mi podarilo naprogramovať aj s vašou pomocou a zatial mi to funguje

ĎAKUJEM za pomoc

Private Sub CommandButton1_Click()
Dim PoslednyRiadok As Integer


If id < koniec Then
CommandButton1.Visible = True
End If

Pridaj
End Sub

Private Sub CommandButton2_Click()
Vymaz
End Sub

Sub Vymaz()

For j = 1 To 6
UserForm1.Controls("TextBox" & j).Value = ""
Next j

End Sub

Private Sub CommandButton3_Click()
Unload Me
End Sub

Sub Pridaj()

End Sub

Sub Uprav()

'Jedná sa mi o tuto funkciu<- ak kliknem na tlacidlo uprav musí mi zapísať data riadka xy a stlpca 2-6 z Hárok1 do hárok 2 a automaticky priradiť ID v Hárok
do stĺpca 1 a upravit bunky 2-6 v Hárok1

End Sub

Private Sub CommandButton4_Click()
Dim koniec As Integer

koniec = Sheets("Hárok1").Cells(Rows.Count, "A").End(xlUp).Row
UserForm1.TextBox1.Value = koniec - 1
MsgBox "Posledné volné ID je " & koniec - 1
UserForm1.TextBox2.Value = ""
UserForm1.TextBox3.Value = ""
UserForm1.TextBox4.Value = ""
UserForm1.TextBox5.Value = ""
UserForm1.TextBox6.Value = ""

End Sub

Private Sub Label6_Click()

End Sub

Private Sub TextBox1_Change()

Dim id As Integer, i As Integer, j As Integer, k As Integer, l As Integer
Dim koniec As Integer

TextBox4.MultiLine = True
koniec = Sheets("Hárok1").Cells(Rows.Count, "A").End(xlUp).Row

If IsNumeric(UserForm1.TextBox1.Value) Then

i = 1
id = UserForm1.TextBox1.Value




Do While Sheets("Hárok1").Cells(i, 1).Value <> ""

If Sheets("Hárok1").Cells(i, 1).Value = id Then
For j = 2 To 6
UserForm1.Controls("TextBox" & j).Value = Cells(i, j).Value


Next j

End If

i = i + 1

Loop



End If

If koniec < id Then
CommandButton5.Visible = False
CommandButton1.Visible = True
UserForm1.TextBox2.Value = ""
UserForm1.TextBox3.Value = ""
UserForm1.TextBox4.Value = ""
UserForm1.TextBox5.Value = ""
UserForm1.TextBox6.Value = ""

Else

CommandButton1.Visible = False
CommandButton5.Visible = True


End If

End Sub

Příloha: zip50903_vba.zip (35kB, staženo 13x)
Zaslat odpověď >

Strana:  « předchozí  1 2
#050919
avatar
Přiznám se, že moc těm otázkám nerozumím. Naznačuješ, že ty jednotlivé kroky si implementuješ do svého souboru, ale ten nepřikládáš - asi tam máš nějaká data které nechceš zveřejňovat. Ale tím pádem jsme odkázani na slovní popis, který nese jen část informace plus kognitivní zkreslení.

Buď si ty svoje data nějak anonymizuj či jinak vhodně pozměň, (zachovej datové typy) ale bez přiloženého kompletního souboru je to odsouzeno nezdaru z uondání.citovat
#050945
avatar
Už to behá presne tak jak sme si to predstavoval ale ešte jedna vec

jak urobím zálohu dat
- v Hárok 1 -> ID 1 (zmena dátumu od a do)
- v Hárok 2 -> najde volné ID a prekopíruje stlpec B,C,D,E,F - s pôvodným dátumom vid v priloženom excely

-- ĎAKUJEM ZA PEVNÉ NERVY
Příloha: zip50945_vba.zip (33kB, staženo 15x)
citovat
#050951
avatar
Vidím, že listování záznamy z mé poslední přílohy jsi neimplementoval ale neva.
Uložení původních hodnot záznamu předtím, než uložíš změněné hodnoty (tedy jestli jsem to podle popisu správně pochopil) najdeš v příloze
Příloha: zip50951_zaloha_dat-1.zip (37kB, staženo 12x)
citovat
#050952
avatar
poslal som verziu, ktorú si mi poslal ty. ja si to skusam dat do toho mojho teraz som tam implementoval tú zálohu ale nedal som to na samostatné tlacidlo ale pridal som funkciu do tlacidla ulozit zmenu... funguje mi to je to super :)

ĎAKUJEM ZA POMOC

ešte malá otázka .... ak by som chcel hladať ID nie podla ActiveCell ale zadaním hodnoty do ID a podla hodnoty ID mi najde udaje viem ako by som to urobil ked je TextBox pomenovaný textbox ale teraz ked idem podla teba a premenoval som si vsetky TF a CB tak som stále neúspesný

vedel by si mi poradit? - teoreticky presne tak ako som to mal v tom prvotnom excely co som sem postoval (50903_vba.zip)

Ďakujem za pomoccitovat
#050953
avatar
Ve čtvrté verzi (Ucim_sa_VBA4.xlsm) bylo i listování záznamy, ale tys mi poslal něco, co je verzí 3, čili ještě bez toho. Pokud by sis v tom udělal pořádek, asi bys nic nezkazil...

A to hledání chceš spouštět tlačítkem z listu anebo to chceš startovat z prostředí formuláře? Anebo obojí?citovat
#050954
avatar
Ak zadám ID do txtID tak mi nájde požadovaný záznam

riešil som to cez txtID_Change()

pri zmene textboxu txtID vyhladá záznam s požadovaným IDcitovat
#050955
avatar
Takže jsi na to přišel sám, paráda.
Jen upozornění na ošidnost událostních procedur pověšených na změnu - ty se spouští pokaždé když dojde k změně v daném prvku, tedy i když se ten prvek mění makrem. Takže i když načítáš nějaký záznam jiným makrem, přičemž to změní hodnotu v txtID, tak v tom okamžiku proběhne ta tvoje vyhledávající rutina, takže ve finále se to vlastně provede dvakrát. A docela dobře by se to mohlo i zacyklit. Zde je možné použít buď jiné události než change, anebo v momentě když si to nepřejeme, to potlačit pomocí Application.EnableEvents = False. Anebo to spouštět tlačítkemcitovat
#050958
elninoslov

Milan-158 napsal/a:

...anebo v momentě když si to nepřejeme, to potlačit pomocí Application.EnableEvents = False...

Musím Vás opraviť. Toto pri formulári VBA nefunguje. Na nevykonanie onChange používam globálnu premennú napr.
Dim bEnableEvents as Boolean
a následne v onChange hneď na začiatku testujem či je
If bEnableEvents Then
... vaše makro onchange ...
End If

a pritom bEnableEvents nastavím na False vždy pred volaním procesu, ktorý spôsobí "nechcenú" zmenu. Po dokončení naspäť na True.citovat
#050962
avatar
Bylo mi divné, že App.EnableEvents někdy funguje a někdy ne 4, tak jsem to obvykle obešel jinak.
S tou globální proměnnou to zřejmě bude lepší, vyzkouším.

Každopádně dík za upřesnění.citovat
#050963
avatar
Milan-158 - ĎAkujem za pomoc a pevné nervy viem že to bolo so mnou ťažké ale nakoniec sa to podarilo :) už to ide tak ako som chcel a k tej verzií 4 nejakým nedopatrením sa mi uložila do stiahnutých súborov a nevsimol som si to a stále som sa pohyboval v tej verzií 3 za čo sa ospravedlňujem že som mrhal tvojim časom

Ďakujem cenním si toho že sa nájdu ľudia, ktorý pomôžu a majú pevné nervy pri prípadoch ako som jacitovat

Strana:  « předchozí  1 2

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

Čas od do

lubo • 19.4. 16:30

Makro smyčka

MilanKop • 19.4. 10:46

Makro smyčka

elninoslov • 19.4. 9:02

Čas od do

elninoslov • 19.4. 8:46

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32