< návrat zpět

MS Excel


Téma: Vložení textu inputboxem rss

Zaslal/a 13.6.2012 20:47

Zdravím všechny,
jsem začátečník v oblasti VBA. Mám za úkol vytvořit makro na vkládání textu do 1.ho prázdného řádku v určitém sloupci tabulky. Bohužel mi mé makro vyhazuje chybu invalid qualifier a už nevím co s tím...

Private Sub Poznamky()
'Přidá poznámku do rozevíracího seznamu ve sloupci Poznámka

Dim PosledniPlnyRadek As Integer
Dim prvniPrazdnyRadek As Integer
Dim strMsg As String
Dim strInputBoxText As String

strInputBoxText = Application.Inputbox("Zadej poznámku")

If strInputBoxText.Value Is Nothing Then
' Nic se nepřidá
Else
PosledniPlnyRadek = Range("A8").End(xlDown).Row ' Ve sloupci A
prvniPrazdnyRadek = PosledniPlnyRadek + 1

prvniPrazdnyRadek = strInputBoxText

End If

End Sub

Prosím tedy o pomoc, budu vděčný za každý nápad, jak to opravit. Díky Míra

Zaslat odpověď >

#008808
Jeza.m
Dim t As String
t = Application.InputBox("Zadej poznámku")
If t <> "" Then
Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1) = t
End If

nebo

Dim t As String
Dim rd As Single 'řádek
Dim sl As Single 'sloupec

t = Application.InputBox("Zadej poznámku")

rd = 1 'začni prohledávat od řádku 1
sl = 1 'sloupec k prohledání a zápisu
If t <> "" Then
Do While Cells(rd, sl) <> ""
rd = rd + 1
Loop
Cells(rd, sl) = t
End If

M@citovat
#008821
avatar
Děkuju mnohokrát, to druhé makro je přesně to co potřebuji, mám však nyní ještě jeden problém.
Potřebuji měnit počet řádků, které jsou v seznamu podle toho, jak se přidávají poznámky, pokud mám tedy poznámek 5, potřebuji aby měl seznam v buňce položek 5, pokud 10, tak musí mít seznam všech 10, jak to ošetřit makrem ? Zkoušel jsem toto, ale není to správný zápis...

Private Sub Poznamky()
'Přidá poznámku do rozevíracího seznamu ve sloupci Poznámka

Dim t As String
Dim rd As Single 'řádek
Dim sl As Single 'sloupec

t = Application.Inputbox("Zadej poznámku")

rd = 8 'začni prohledávat od řádku 8
sl = 22 'sloupec k prohledání a zápisu
If t <> "" Then
Do While Cells(rd, sl) <> ""
rd = rd + 1
Loop
Cells(rd, sl) = t
' Nastavení seznamu

Range("M8:M28").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$V$8:t"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Neplatná poznámka"
.InputMessage = ""
.ErrorMessage = "Hodnota nebyla přidána do seznamu, použij tlačítko: Přidej poznámku."
.ShowInput = True
.ShowError = True
End With
End If

End Sub

Chyba je určitě v tomto řádku, ale nevím, jak to zapsat jinak...

AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$V$8:t"citovat
#008831
avatar
Chybu máš v té Formuli. Nemůžeš nacpat proměnnou do uvozovek, protože v tomto případě je brána jako obyčejný text. Navíc v té proměnné máš hodnotu buňky a ne její adresu. Takže si s tím budeš muset trochu více pohrát :-).

Místo té proměnné použij Cells(rd, sl).Address a na spojování znak ampersandu (&). Napsal bych ti to celý, ale je to tvůj úkol :-).

Nápovědu pro výběr oblastí máš např. tady:
http://support.microsoft.com/kb/291308
P.citovat
#008837
avatar
Nejsem sice student, potřebuju to do práce, ale zkusím nad tím podumat, snad na něco přídu.. makra se učím sám metodou pokus omyl, tak snad to půjde, každopádně zatím Díky.. pokud na něco přídu, dám to sem raději pro kontrolu, kdyby tam zas bylo něco špatně.citovat
#008838
avatar
Hmm, asi na to zatím nestačím, ať dělám co dělám, nemohu se dopracovat kloudných výsledků...

Mým problémem bude spíše než umění výběru oblastí správna syntaxe... nějak nejsem schopný použít správnou syntaxi, vybrat buňky co potřebuji bych snad i zvládl, ale netuším jak to použít v tomto případě, kdy vybírám oblast buňěk pro rozevírací seznam...citovat
#008839
avatar
Ok :-). Nevzdávej to :).
Tu Formuli nahraď tímto:
Formula1:="=" & Cells(8, 22).Address & ":" & Cells(rd, sl).AddressJenom pro zajímavost, na jaké pozici to potřebuješ?
P.citovat
#008853
avatar
Díky moc, hned zítra to testnu, dnes to už nestíhám, jinak dělám kontrolora kvality,programuju a měřim na 3D.
Působíme jako externí firma specializující se na kontrolu souřadnicovými stroji uvnitř Aera Vodochody.
No a protože musíme Aeru vykazovat naměřené minuty na jednotlivých optonech, dělám nám tyto makra, abych usnadnil všem to otravné vypisování a tvorbu denních a měsíčních reportů... :) Ale jak už jsem řekl, učím se to metodou pokus omyl a hlavně sám, takže mi to trvá dlouho a odlaďuju to třeba 2 měsíce, abych odstranil nedostatky, kterých bývá opravdu hodně 5citovat
#008856
avatar
Tak formule funguje perfektně a přesně tak jak potřebuji... :) Moc mi to pomohlo a formulář je tak funkční :)

Ještě jednou tedy děkuji, tvé rady a snaha o pomoc mi opravdu pomohly a myslím, že jsem se i něco přiučil... hlavně co se syntaxe týká.citovat
#008858
avatar
Pavlusi, mohl bys prosím ještě mrknout na řešení tohoto problému ? Už to mám skoro hotové, ale napadlo mě že bych tam mohl mít spoustu chyb, tak kdyby si mi na to mrkl a dal vědět, kdyby tě třeba napadlo brilantnější řešení, dělám na tom už asi měsíc, ale jak říkám, jsem začátečník, takže to není kolikrát tou nejsnašší cestou, jak by bylo asi vhodnější...

Jde o to, že soubor měsíční report by měl fungovat asi tak, že vytáhne automaticky data z reportů umístěných ve složce data. Reporty mají různá jména a předem nemohu vědět, jaký bude název, ale ukládají se do předem známé složky, další problém je ten, že reporty mohou být s příponou .xls i .xlsx.

Soubor má již podle názvu sbírat minuty zhruba ze 60 souborů a později filtrovat a třídit data tak, aby bylo jasné, kolik bylo za každý den v měsíci odpracováno minut a ještě rozdělovat velké a malé LK (stroj). Již to mám téměř hotové, chybí jen rozdělit data a rostřídit, na tom ještě pracuji.

Kdyby tě snad napadlo, jak něco udělat lépe, nebo jednodušeji, popřípadě, kdybys našel nějaké chyby, byl bych rád, kdybys mi to pomohl odladit...

V příloze posílám svůj výtvor, který jsem splácal :)
Heslo na odemčení sešitů a VBA kodu je mepuvo9n1
Příloha: rar8858_rar.rar (216kB, staženo 17x)
citovat
#008859
avatar
Jo a ještě jedna věc, složky pro vstup i výstup se nastavují v 1. listu.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