Tiedostossa, olkoon nimi vaikka lauseet, on 2 sarakkeinen taulukko, 1 sarakkeella juokseva numerointi ja saman rivin toisella sarakkeella lause.
Kirjoitan tekstiä, ja tekstin joukkoon pitäisi hakea lause tuolta taulukosta numeron perusteella.
Kirjoitan numeron, painan makron näppäinyhdistelmää tai painiketta;
makro avaa lauseet tiedoston, siirtyy annetun numeron kohdalle, siitä seuraavaan sarakkeeseen, kopioi solun sisällön, sulkee tiedoston, korvaa annetun numeron kopioidulla tekstillä...
Onko mahdollista luoda tuollainen makro ???
Makro-gurut, apua kaivataan !!!
1
703
Vastaukset
olen käyttänyt vastaavaa ohjelmoinnissa. Helppoa laittaa ryhmittäin($) sanomat(lauseet) ja helppo hakea tiedostosta. Tietenkin sen voi tehdä pyytämälläsi tavalla, mutta mielestäni tämä on mukavin ja selkein tapa.
tee tiedosto C:\lauseet.txt" muotoon
$10 'aihe1
kunde testaa1
kunde testaa2
kunde testaa3
$20 'aihe2
kunde testaa11
kunde testaa21
$30 'aihe3
kunde testaa111
kunde testaa211
kunde testaa311
kunde testaa411
kunde testaa511
ja liitä koodi ThisDocument moduuliin...
kysyy aiheen numeron esim. 20 ja sitten rivinumeron esim. 2 ja kirjoittaa aktiiviseen kohtaan tekstin "kunde testaa21"
Dim Aihe As Variant
On Error Resume Next
Aihe = InputBox("Anna aiheen numero")
If Aihe = "" Then Exit Sub
Tekstirivi = InputBox("Anna rivinumero")
If Tekstirivi = "" Then Exit Sub
Selection.TypeText LueTeksti("C:\lauseet.txt", Aihe, Tekstirivi)
End Sub
Function LueTeksti(strTextFile As String, strDollari As Variant, lngTxtLine As Variant) As Variant
Dim dollari As String
Dim Tekstirivi As String
Dim Rivinumero As Long
Dim Dollaritesti As Boolean
Dim Pituus As Long
Dim Tarkistus As Long
Dim Oma As Long
On Error GoTo VIRHE
dollari = "*$" & strDollari & "*"
Open strTextFile For Input As #1
Do While Not EOF(1)
Line Input #1, Tekstirivi
If Tekstirivi Like dollari Then
Dollaritesti = True
Rivinumero = 0
End If
If Dollaritesti = True Then
If Rivinumero = lngTxtLine Then
Oma = InStr(1, Tekstirivi, (Chr(39)))
If Oma > 0 Then
Pituus = Len(Tekstirivi)
Tarkistus = InStr(1, Tekstirivi, (Chr(39)))
If Tarkistus > 0 Then
LueTeksti = Mid(Tekstirivi, 1, (Tarkistus - 2))
If LueTeksti = "False" Or LueTeksti = "True" Then
LueTeksti = CBool(LueTeksti)
Exit Do
ElseIf IsNumeric(LueTeksti) = True Then
LueTeksti = CDbl(LueTeksti)
Exit Do
Else
LueTeksti = CStr(LueTeksti)
Exit Do
End If
End If
ElseIf Oma = 0 Then
LueTeksti = Tekstirivi
If LueTeksti = "False" Or LueTeksti = "True" Then
LueTeksti = CBool(LueTeksti)
Exit Do
ElseIf IsNumeric(LueTeksti) = True Then
LueTeksti = CDbl(LueTeksti)
Exit Do
Else
LueTeksti = CStr(LueTeksti)
Exit Do
End If
End If
End If
Rivinumero = Rivinumero 1
End If
Loop
Close #1
POISTU:
If LueTeksti = Empty Then MsgBox "Annettua riviä ei löydy!!!", vbCritical
Exit Function
VIRHE:
Close #1
MsgBox "Joku meni pieleen!!!", vbCritical
Resume POISTU
End Function
Keep Excelling (Wording)
@Kunde
P.S. seuraavaksi varmaan haluatkin tiedot lomakkeelle, josta klikkaamalla sitten suoraan tekstiin... :-)
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Mihin kaikkeen sinä ihastuit hänessä
Mikä oli se asia mikä vei jalat altasi? ❤️ Oliko jotain erityistä tilannetta vai tunne? Kenties monen sattuman summa? Ai938862Persut: haluamme lisää veroja!
Lisää lisää veroja huutaa persukuoro. Veroila Suomi nousuun! "Uusi matkailuvero eli matkailijamaksu peritään esimerki484781Nainen kokki autossa kammottavan kuoleman sähköauto-Teslan syttyessä tuleen.
https://www.is.fi/autot/art-2000011652873.html Näin vaarallisia sähköautopalot voivat olla.414461Jos samassa autossa istuu romani, somali ja venäläinen, kuka ajaa?
Arvioiden mukaan romanit lähtivät noin 1000-luvulla liikkeelle pohjois-Intiasta. Nyt 1000 vuotta myöhemmin he ovat levit462706Numero josta kaivattusi tulee mieleen
Onko jokin numero joka yhdistää teidät jotenkin? Älä laita puhelinnumeroa.1001536- 401316
Tämmönen höpsö
Höpönassu mä olen. En mikään erikoinen…hölötän välillä ihan levottomia. Tykkäisit varmasti jos olisin siellä sun vieress441266Heräsin taas sinä mielessä
Miten voi haluta toista näin paljon? 😳 Kyllä meillä on muutenkin hyvä yhteys. Ehkä se tekee myös tästä niin voimakkaan?641192Jorman paluu sodasta Lieksaan oli katkera
Jorma Karhunen astui Lieksan asemalle. Aurinko paistoi, mutta Jorman maailma oli sumuinen. Takana oli se helvetti, jota391170Kannattaa toimia yleisesti ottaen
Ajoissa. Vaikka miten paljon haluan ja tunnen, olen löytänyt nyt elämääni jotain uutta ja se todennäköisesti edistyy, jo1671110