< návrat zpět

MS Excel


Téma: Chyba v kódu rss

Zaslal/a 14.9.2013 23:47

Prosím o radu. V kódu je podmínka, která má najít již uložený záznam na listu a pokud jej najde, tak se má proces kopírování ukončit, bohužel prostě nevím jak na to, pravděpodobně bude v kódu něco chybět, nebo jsem něco dal někam blbě. Díky


Sub Export_do_databaze()
Application.ScreenUpdating = False

Dim c_Nabidky As String
zdroj = ActiveWorkbook.Name

Dim doDB As Boolean

' EXPORT NABÍDKY

doDB = True
ActiveWorkbook.Save
c_Nabidky = Worksheets("Nabídka").Cells(13, 18).Value ' Číslo nabídky

'existuje už v databazi?
For i = 2 To Worksheets("Databáze nabídek").Cells(65000, 2).End(xlUp).Row + 1
If c_Nabidky = Worksheets("Databáze nabídek").Cells(i, 2) Then
f_zprava = MsgBox("V databázi už tato nabídka existuje, je nutné změnit číslo cenové nabídky?", vbNo, "Nabídka už existuje")

Select Case f_zprava

Case vbNo
doDB = False
'Exit Sub
End Select
End If
Next i

'ulozeni do databaze
radek = Worksheets("Databáze nabídek").Cells(65000, 2).End(xlUp).Row + 1
If doDB = True Then
Worksheets("Databáze nabídek").Cells(radek, 2) = Worksheets("Nabídka").Range("R13") 'Číslo nabídky
Worksheets("Databáze nabídek").Cells(radek, 3) = Worksheets("Nabídka").Range("K16") 'Datum vystavení


End If

f_zprava = MsgBox("Export do databáze byl ukončen", vbYes, "Info")


End Sub

stop Uzamčeno - nelze přidávat nové příspěvky.

Strana:  1 2   další »
icon #015230
avatar
Ten Exit Sub je zakomentovaný z akého dôvodu?citovat
#015231
avatar
Mnoho pokusů o to aby to fungovalo, ale i když zakomentovaný není, prostě to nefunguje. Funguje to pouze pokud je v MsgBoxu vbYesNo, ale potřebuji tam mít pouze jedno tlačítko OK. Tak nevím, kde dělám chybu:-(citovat
#015232
avatar
Zde je ukázka. Export je z listu Nabídka
Příloha: rar15232_databaze.rar (80kB, staženo 35x)
citovat
icon #015233
avatar
Mno, argumentom u msgboxu vbNo byť nemôže, čiže do úvahy pripadá iba vbOKOnly alebo vbYes, pokiaľ teda trváš na jednom tlačítku. Nakoľko ale máš nad tým podmienku if a ten msgbox vyskočí na základe splnenia podmienky tak asi select case je zbytočný a makro by sa malo ukončiť hneď po tom, čo odklikneš msgbox, čiže asi takto (zakomentoval som tie pôvodné riadky, ktoré tam pmn byť nemusia, ale netvrdím, že rozumiem presne tomu, o čo sa snažíš):For i = 2 To Worksheets("Databáze nabídek").Cells(65000, 2).End(xlUp).Row + 1
If c_Nabidky = Worksheets("Databáze nabídek").Cells(i, 2) Then
MsgBox("V databázi už tato nabídka existuje, je nutné zmìnit èíslo cenové nabídky", vbYes, "Nabídka už existuje")

' Select Case f_zprava
'
' 'Case vbNo
Exit Sub
' Case vbYes
' doDB = False
' End Select
' Else
End If
Next i
citovat
#015234
avatar
Díky moc, vyzkoušeno a vše ok 10citovat
icon #015235
avatar
Čo ten combobox v tom druhom vlákne, to už tiež funguje?citovat
#015236
avatar
No k tomu jsem se ještě nedostal, po pravdě nevím kam to umístit. Do listu ve VBA?citovat
icon #015237
avatar
no, určite do nejakého kódu vo VBA, napadá ma napr. do kódu pre formulár, asi v ňom máš nejaké potvrdzovacie tlačítko alebo niečo podobné, tak doňho, nejaký ButtonClick event alebo čo...citovat
#015239
avatar
popravde na debugovanie kodu je najlepsie si ho odkrokovat a postupne sledovat jeho procesy ci su spravne:

navod1:
- V kode vlavo klikneme tam kde chceme zastavit proces a vytvori sa tam taka hneda gulicka.
- ked potom stlacime makro tak pri tej hnedej gulicke zastane proces a mozme postupne s degurerom krokovat az kym nenajdeme chybu

navod2:
- do kodu zapiseme: debug.print PREMENA
- s tymto sa do Immediate vypise sledovana premena

navod2 sa povecsinou pouziva ked sa odkazuje na SQL databazu a potrebuje vediet ci ste dobre zapisali SELECT, DELETE, INSERT atd.citovat
icon #015240
Poki
Nebudu se do toho moc michat, jen na zamysleni:

Proc prochazet vsechny polozky v oblasti a hledat duplicitu, pri velkem poctu bunek by to mohlo byt velice pomale.
Radeji bych pouzil:
1) Metodu .Find
2) funkci Match

...na zaklade vyskytu chyby pri vyhledani pak lze rozhodnout o tom, ze v oblasti zadna stejna hodnota neni...a bude to mnohem rychlejsicitovat

Strana:  1 2   další »

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