Tekstin poistaminen solusta ja nollan lisääminen

Hei,

jälleen tarvitsisin teidän apuanne! Minulla on kyselylomaketietoja, jossa kysytään puhelinnumero. Kuitenkin ohjelmassa tuohon kenttään on mahdollista syöttää myös tekstiä, joten kun siirrän lomakkeen tiedot Exceliin, pitää minun käsin poistaa nuo tekstit pois käsin soluista. Osaisiko joku kertoa makron, jolla saisin nuo tekstit numeroiden seasta näppärästi pois?

Jatkokysymys: kun olen saanut tekstit pois, on Excel poistanut niistä puhelinnumeroista, joissa ei ole tekstiä, pois etunollan. Miten saisin nuo nollat sitten taas takaisin?
64209
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Ensinnäkin kun tuot tiedot Exceliin käytä tuontivelhoa apuna ja määritä kaikki kentät tekstiksi, jolloin etunollatkin säilyvät.
Allaolevalla koodilla putsaat tekstit pois. Valitse solut mitkä haluat putsata ja suorita makro.
Jos tuotava tiedoston rakenne on aina sama, niin makrollahan sen voi sitten tehdä kertalaakista, mutta antamallasi tiedoilla en voi enempää auttaa ;-)

tavalliseen moduuliin...

Sub Putsaa()
Dim solu As Range
With CreateObject("VBScript.Regexp")
.Global = True
.Pattern = "\D "
For Each solu In Selection
solu.Value = .Replace(solu.Value, "")
Next
End With
End Sub

Keep EXCELing
@Kunde

Äänestä

Yksi tapa on käyttää funktiota. Tuota vähän viilaamalla saisi lisäominaisuuksiakin, esim. ensimmäisen -merkin voisi sallia, jos kirjoitettu puhelinnumero on kansainvälisessä muodossa tjsp.

Tätä funktiota käytetään siis näin:
=Poistamerkit("å1 ä2=ö3")
joka palauttaa: 123


Function Poistamerkit(merkkijono As String) As String
Dim paluujono As String
Dim i As Integer

paluujono = ""

For i = 1 To Len(merkkijono)
If Mid(merkkijono, i, 1) >= "0" And Mid(merkkijono, i, 1) <= "9" Then
paluujono = paluujono Mid(merkkijono, i, 1)
End If
Next
Poistamerkit = paluujono
End Function

Äänestä

Kiitos, mahtavaa apua olen saanut taas! Kunden Makroa voisin käyttää, kun ei tule siis minun käyttöön vaan toiselle henkilölle jota autan tämän toteuttamisessa. Tuotavan tiedoston rakenne on aina sama, eli voisi ilman tuota sarakevalintaa toteuttaa, mutta apua, miten? On kyllä ressi kun ei näinkään pientä juttua osaa itse toteuttaa... no jospa sitä tässä oppii kokoajan :)

Äänestä
  • Lisäyksenä vielä noihin etunolliin, tuontivelhon käyttö ei taida olla mahdollista, sillä kyselyohjelmassa, josta tiedot tuodaan exceliin, valitaan vain .csv ja sen jälkeen tiedot avautuvat tuosta ohjelmasta Exceliin. Eli velhon käyttö välissä ei onnistu, mielestäni.

    Äänestä

  • Ja VIELÄ tuli mieleen, että saisikohan tuon nollaongelman ratkaistua sillä, että lisäisi aina nollan alkuun JOS luku ei jo ala nollalla? Tai JOS luvun alussa on 358, sen kumoaisi nollalla...? En kyllä tiedä miten tuon makrolla toteuttaisi.

    Äänestä

  • exceliinapua kirjoitti:

    Lisäyksenä vielä noihin etunolliin, tuontivelhon käyttö ei taida olla mahdollista, sillä kyselyohjelmassa, josta tiedot tuodaan exceliin, valitaan vain .csv ja sen jälkeen tiedot avautuvat tuosta ohjelmasta Exceliin. Eli velhon käyttö välissä ei onnistu, mielestäni.

    Jos tarkoitus on aukaista .csv tiedosto tuplaklikkaamalla, niin yksi tapa on käyttää PowerShell-skriptiä.

    Ohje esimerkiksi tuolla kohdassa "PowerShell script to open CSVs direct from Windows Explorer" http://superuser.com/questions/307496/how-can-i-set-excel-to-always-import-all-columns-of-csv-files-as-text

    Äänestä

Kommentoi aloitusta


exceliinapua kirjoitti:

Hei,

jälleen tarvitsisin teidän apuanne! Minulla on kyselylomaketietoja, jossa kysytään puhelinnumero. Kuitenkin ohjelmassa tuohon kenttään on mahdollista syöttää myös tekstiä, joten kun siirrän lomakkeen tiedot Exceliin, pitää minun käsin poistaa nuo tekstit pois käsin soluista. Osaisiko joku kertoa makron, jolla saisin nuo tekstit numeroiden seasta näppärästi pois?

Jatkokysymys: kun olen saanut tekstit pois, on Excel poistanut niistä puhelinnumeroista, joissa ei ole tekstiä, pois etunollan. Miten saisin nuo nollat sitten taas takaisin?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu