< návrat zpět

MS Excel


Téma: Neposunuje se mi řádek a to mě zlobí... rss

Zaslal/a 11.8.2015 11:37

Ahoj všichni, potřeboval jsem rozšířit databázi o další pole, avšak po úpravě kódu se mi nechce buňka F posunovat dolu..... Co mám špatně??

Sub saveandsend()

Dim r As Long, Z As Range
Dim posl As Integer, N As String

If MsgBox("JSOU ZADANÉ ÚDAJE V POŘÁDKU ?", vbYesNo, "Odeslání do databáze") = vbYes Then ' okno z upozorněním o vyčištění formuláře

Set Z = Sheets("Databáze").Range("A2:F2") 'První záznam v DB
With Z
On Error Resume Next 'První volný řádek
r = .Resize(Sheets("Databáze").Range("A:A").Rows.Count - .Row + 1).Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row - .Row + 1
On Error GoTo 0

' 1. Poslední záznam jako poslední v DB -------------------------------------
'Z.Offset(r, 0).Value = Sheets("Formulář").Range("B4:F4").Value

' -----------------------------------------------------------------

' 2. Poslední záznam na jako první v DB -------------------------------------
.Resize(r + 1 - IIf(r > 0, 1, 0), .Columns.Count).Offset(1, 0).Value = .Resize(r + 1 - IIf(r > 0, 1, 0), .Columns.Count).Value 'Posun o řádek dolů
.Value = Sheets("Datový list").Range("A26:F26").Value 'Poslední zápis na první řádek DB

End With

With ThisWorkbook 'Pro tento sešit
.Worksheets("Protokol").Copy after:=.Worksheets("Databáze") 'Kopíruj list Protokol
With .Worksheets("Datový list")
N = .Range("A26") & " " & .Range("C26") 'Název pro nový list
End With
With .Worksheets(.Worksheets("Databáze").Index + 1) 'Pro novou kopii
.Name = N 'Nastav název
.Buttons("btnOdeslatUlozit").Delete 'vymaž zkopírované tlačítko
.Range("B2:M44").Validation.Delete 'vymaže seznamy
End With
.Save
End With

Worksheets("Protokol").Activate
Range("D28,D29,D30,K5,B5,B8,C8,D8,G8,L8,B10,F11,F15,H15,L15,F16,H16,L16,F17,H17,L17,F18,H18,L18,F21,H21,L21,F22,H22,L22,F25,H25,L25,F28,H28,L28,F29,H29,L29,F30,H30,L30,B33,F40,H40,L40").Select ' vybere zadanou oblast buněk
Selection.ClearContents ' vymaže data
ThisWorkbook.Save ' uloží

End If
End Sub

Zaslat odpověď >

#026214
elninoslov
Skúste:
Sub saveandsend()
Dim r As Long, N As String
If MsgBox("JSOU ZADANÉ ÚDAJE V POŘÁDKU ?", vbYesNo, "Odeslání do databáze") <> vbYes Then End ' okno z upozorněním o vyčištění formuláře
With ThisWorkbook 'Pro tento sešit
With .Worksheets("Databáze").Range("A2:F2") 'První záznam v DB
On Error Resume Next 'První volný řádek
r = .Resize(Rows.Count - .Row + 1).Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row - .Row + 1
On Error GoTo 0
.Resize(r + 1 - IIf(r > 0, 1, 0), .Columns.Count).Offset(1, 0).Value = .Resize(r + 1 - IIf(r > 0, 1, 0), .Columns.Count).Value 'Posun o řádek dolů
.Value = ThisWorkbook.Worksheets("Datový list").Range("A26:F26").Value 'Poslední zápis na první řádek DB
End With
.Worksheets("Protokol").Copy after:=.Worksheets("Databáze") 'Kopíruj list Protokol
With .Worksheets("Datový list")
N = .Cells(26, 1) & " " & .Cells(26, 3) 'Název pro nový list
End With
With .Worksheets(.Worksheets("Databáze").Index + 1) 'Pro novou kopii
.Name = N 'Nastav název
.Buttons("btnOdeslatUlozit").Delete 'vymaž zkopírované tlačítko
.Range("B2:M44").Validation.Delete 'vymaže seznamy
End With
With .Worksheets("Protokol")
.Activate
.Range("D28,D29,D30,K5,B5,B8,C8,D8,G8,L8,B10,F11,F15,H15,L15,F16,H16,L16,F17,H17,L17,F18,H18,L18,F21,H21,L21,F22,H22,L22,F25,H25,L25,F28,H28,L28,F29,H29,L29,F30,H30,L30,B33,F40,H40,L40").ClearContents ' vymaže zadanou oblast buněk
End With
.Save ' uloží
End With
End Sub

testované iba po riadok .Worksheets("Protokol").Copy ...citovat
#026215
avatar
Bohužel to samé, možná bych Ti mohl poslat celý sheet ať si to můžeš vyzkoušet?citovat
#026216
elninoslov
No veď mne to práve funguje korektne. Pošlite mi teda zošit na mail čo mám uvedený v profile.citovat

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