nefunkční přepis dat Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

m.niki
Level 1
Level 1
Příspěvky: 60
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

nefunkční přepis dat  Vyřešeno

Příspěvekod m.niki » 02 srp 2010 14:59

Nevíte někdo proč mi nefunguje tento kód? data se mi přepisujou do původního sešitu a przní ho, potřebuji aby se data přepsala do sešitu evidence_faktur.xls, ten se sice otevře, ale už se do něj nic nevpíše

Kód: Vybrat vše

Sub tlačítko1_Klepnutí()

ID1 = Cells(1, 1)
ID2 = Cells(1, 2)
ID3 = Cells(1, 3)

Application.Workbooks.Open ThisWorkbook.Path & "\evidence_faktur.xls"
Windows("evidence_faktur.xls").Activate

Cells(4, 1) = ID1
Cells(4, 2) = ID2
Cells(4, 3) = ID3

End Sub


děkuji moc za rady

Reklama
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: nefunkční přepis dat

Příspěvekod navstevnik » 02 srp 2010 16:05

Pokud je procedura Sub tlačítko1_Klepnutí() ukoncena End Sub a je umistena ve standardnim modulu, je volana tlacitkem z Panely nastroju>Formulare (a prirazena tato procedura), vlozi spravne hodnoty do noveho sesitu. Kdyz, tak priloz oba sesity s nefunkcni procedurou a obsahujici jen ta nejnutnejsi data a proceduru a tlacitko.

Vhodnejsi je pouzit ovladaci prvek z Panely nastroju>Ovladaci prvky, vlozit tlacitko CommandButton1 na list a v modulu prislusneho listu pouzit udalostni proceduru (ukazkove v nejjednodussim tvaru):

Kód: Vybrat vše

Private Sub CommandButton1_Click()

  Application.Workbooks.Open ThisWorkbook.Path & "\evidence_faktur.xls"

  With Workbooks("evidence_faktur.xls").Worksheets("list1")
    .Cells(4, 1) = Cells(1, 1)
    .Cells(4, 2) = Cells(1, 2)
    .Cells(4, 3) = Cells(1, 3)
  End With
End Sub

m.niki
Level 1
Level 1
Příspěvky: 60
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Re: nefunkční přepis dat

Příspěvekod m.niki » 02 srp 2010 17:54

děkuji, s tvým kódem to funguje jak má. Ještě bych k tomu měl jeden dotat: Když bych chtěl, aby zápis proběhl na první volný řádek jak to mám udělat? zkoušel jsem kód změnit takto:

Kód: Vybrat vše

Private Sub zapis_dat_Click()

  Application.Workbooks.Open ThisWorkbook.Path & "\evidence_faktur.xls"

  With Workbooks("evidence_faktur.xls").Worksheets("list1")
  Dim rd As Single
  rd = 3
  Do While Cells(rd, 1) <> ""
  rd = rd + 1
  Loop 
    .Cells(rd, 1) = Cells(1, 9)
    .Cells(rd, 2) = Cells(7, 1)
    .Cells(rd, 3) = Cells(30, 13)
  End With

End Sub


ale někde se stala chyba a zápis probíhá pořád na ten samý řádek, nechtěl jsem zde dát hned žádost na napsání celého makra, protože se to snažím pochopit, ale nějak do toho nemůžu proniknout :(

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: nefunkční přepis dat

Příspěvekod navstevnik » 02 srp 2010 22:54

V sesitu evidence_faktur.xls je predpokladan hlavickovy radek 1:1.
Nize uvedena procedura (v editoru VBA vloz do modulu prislusneho listu) otevre sesit evidence_faktur.xls, a na list List1 (v procedure zmen dle potreby) ulozi na prvni volny radek pocinaje sloupcem A:A data z bunek I1, A7, M30 (uprav dle potreby) a sesit zavre.

Kód: Vybrat vše

Option Explicit

Private Sub CommandButton1_Click()
  Dim TWbk As Workbook, TWsht As Worksheet, TCll As Range
  Dim Wsht As Worksheet
  Dim LstR As Long
  ' zdrojovy list
  Set Wsht = Me
  Application.ScreenUpdating = False
  ' otevreni ciloveho sesitu
  On Error Resume Next
  Application.Workbooks.Open ThisWorkbook.Path & "\evidence_faktur.xls"
  If Err.Number <> 0 Then
    MsgBox "Cilovy sesit nebyl nalezen"
    GoTo Err1
  End If
  Set TWbk = ActiveWorkbook
  ' a cilovy list
  Set TWsht = TWbk.Worksheets("list1")
  If Err.Number <> 0 Then
    MsgBox "Cilovy list nebyl nalezen"
    GoTo Err2
  End If
  On Error GoTo 0
  ' nalezeni prvni volne bunky (radku) ve sloupci A:A na cilovem listu
  With TWsht
    Set TCll = .Range("A" & .Cells(Rows.Count, "A").End(xlUp).Row).Offset(1, 0)
  End With
  ' prenest data na cilovy list
  With TCll
    .Value = Wsht.Range("i1")
    .Offset(0, 1).Value = Wsht.Range("a7")
    .Offset(0, 2).Value = Wsht.Range("m30")
  End With
  ' odstranit objektove promenne
  Set TCll = Nothing
  Set TWsht = Nothing
Err2:
  TWbk.Close True  ' zavrit cilovy sesit s ulozenim
  Set TWbk = Nothing
Err1:
  Application.ScreenUpdating = True
End Sub

Otestuj, snad vyhovi zameru.

m.niki
Level 1
Level 1
Příspěvky: 60
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Re: nefunkční přepis dat

Příspěvekod m.niki » 03 srp 2010 09:11

ozkoušel jsem to, ale na řádku

Kód: Vybrat vše

   Set TCll = .Range("A" & .Cells(Rows.Count, "A").End(xlUp).Row).Offset(1, 0)
to hlásí chybu, kdyžtak se prodím zkus podívat - soubory jsou v příloze, moc dík
Přílohy
evidence_faktur.xls
(51.5 KiB) Staženo 13 x
pokus_zapis.xlsm
(26.92 KiB) Staženo 13 x

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: nefunkční přepis dat

Příspěvekod navstevnik » 03 srp 2010 17:09

V procedure si nahrad radek:
...
' nalezeni prvni volne bunky (radku) ve sloupci A:A na cilovem listu
With TWsht
Set TCll = .Range("A" & .Cells(Rows.Count, "A").End(xlUp).Row).Offset(1, 0)
End With
...

timto radkem:

Kód: Vybrat vše

Set TCll = .Range("A" & .Cells(.Rows.Count, "A").End(xlUp).Row).Offset(1, 0)


Psal jsem to pod nizsi verzi Excelu. Bohuzel se vloudila chybicka, ktera se projevila az pri kombinaci souboru pokus_zapis.xlsm (2007) a evidence_faktur.xls (2000-3).
Je to chybejici tecka pred Rows.Count, coz odkazovalo na list sesitu pokus_zapis.xlsm, zatimco mel byt odkaz na list v evidence_faktur.xls. Oba soubory v Ex 2000-3 mely shodny pocet radku na listu, zatimco zde maji rozdilny pocet radku, pricemz v pripade, ze by byl pokus_zapis.xls (2000-3) a evidence_faktur.xlsx (2007) nebo oba soubory v Ex 2007, by se chyba take neprojevila, jen by to nebylo ciste reseni.

m.niki
Level 1
Level 1
Příspěvky: 60
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Re: nefunkční přepis dat

Příspěvekod m.niki » 03 srp 2010 17:31

navstevniku děkuji za tvuj čas a ochotu, tečku jsem doplnil a už vesele zapisuju :)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Nefunkční WiFi na Androidu
    od HxxxV » 26 črc 2024 20:59 » v Administrace sítě
    10
    28576
    od mmmartin Zobrazit poslední příspěvek
    22 led 2025 21:47
  • i3 8100 nefunkční turboboost
    od Baggy » 05 zář 2024 01:40 » v Problémy s hardwarem
    8
    5415
    od Baggy Zobrazit poslední příspěvek
    29 zář 2024 22:11
  • Nefunkční USB Flash Disk?
    od Dolpi » 01 zář 2024 10:52 » v Problémy s hardwarem
    4
    3388
    od Dolpi Zobrazit poslední příspěvek
    01 zář 2024 22:17
  • Nefunkční internet po výpadku proudu
    od Neferivet » 15 zář 2024 23:31 » v Sítě - hardware
    2
    2968
    od Alferi Zobrazit poslední příspěvek
    16 zář 2024 08:53

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti