Avaleht
uus teema   vasta Tarkvara »  Tarkvara »  Excel, abi vaja märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
eestirula3
HV kasutaja
eestirula3

liitunud: 07.12.2009




sõnum 20.10.2012 20:37:41 Excel, abi vaja vasta tsitaadiga

Kas keegi oskab aidata. Excel viskas mingi vimpa sisse ja nüüd ei saa nende andmetega midagi teha. Ei ole ka õiget backup'i.

Nimelt probleem seisneb selle, et excelis olevad tänava aadressitele viskas tänava nime ja numbri üks teise otsa.
Niimoodi (Vilde tee76A Tallinn, Soo7 Türi, Tali Pärnumaa) aga oleks vaja saada nii (Vilde tee 76A Tallinn, Soo 7 Türi, Tali Pärnumaa).

Kuidas seda probleemi lahendada?
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum
alfreedo
HV vaatleja

liitunud: 20.06.2010




sõnum 21.10.2012 22:38:06 vasta tsitaadiga

Proovi nii.

Pane näiteks Module1-e:


Option Explicit
Function AddSpaces(Str As String) As String
Dim s As String
Dim i As Integer
Dim nextChar As String, currChar As String
   
    Application.Volatile

    If Len(Str) < 2 Then
        AddSpaces = Str
        Exit Function
    End If
   
    For i = 1 To Len(Str)
       
      nextChar = Mid(Str, i + 1, 1)
      currChar = Mid(Str, i, 1)
         
           If (Not IsNumeric(currChar) And (IsNumeric(nextChar))) Then
       
               s = s & currChar & " "
           Else
               s = s & currChar
           End If
    Next
    AddSpaces = Trim(s)
End Function



Lahtrisse A1 sisesta oma aadress.
Lahtrisse B1 sisesta: =AddSpaces(A1)
LahtriB1 koopeerimispunktil-(ristil) tee topeltklikk.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
eestirula3
HV kasutaja
eestirula3

liitunud: 07.12.2009




sõnum 31.10.2012 13:16:26 vasta tsitaadiga

Nüüd juhtus vastupidi,

Punane 21Harjumaa 13611 Tallinn
Tuulemäe 5Harjumaa 11411 Tallinn
Musta tee 22AViljandimaa 71008 Viljandi

Kas keegi oskab seda VBA koodi muuta vastavaks?

alfreedo kirjutas:
Proovi nii.

Pane näiteks Module1-e:


Option Explicit
Function AddSpaces(Str As String) As String
Dim s As String
Dim i As Integer
Dim nextChar As String, currChar As String
   
    Application.Volatile

    If Len(Str) < 2 Then
        AddSpaces = Str
        Exit Function
    End If
   
    For i = 1 To Len(Str)
       
      nextChar = Mid(Str, i + 1, 1)
      currChar = Mid(Str, i, 1)
         
           If (Not IsNumeric(currChar) And (IsNumeric(nextChar))) Then
       
               s = s & currChar & " "
           Else
               s = s & currChar
           End If
    Next
    AddSpaces = Trim(s)
End Function



Lahtrisse A1 sisesta oma aadress.
Lahtrisse B1 sisesta: =AddSpaces(A1)
LahtriB1 koopeerimispunktil-(ristil) tee topeltklikk.
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum
alfreedo
HV vaatleja

liitunud: 20.06.2010




sõnum 31.10.2012 22:46:01 vasta tsitaadiga

Pane näiteks Module2-e:

Function AddSpaced(Str As String) As String
Dim s As String
Dim i As Integer
Dim nextChar As String, currChar As String

   Application.Volatile
   
    If Len(Str) < 2 Then
        AddSpaced = Str
        Exit Function
    End If

    For i = 1 To Len(Str)
       
      nextChar = Mid(Str, i + 1, 1)
      currChar = Mid(Str, i, 1)
         
          If Not IsEmpty(currChar) Then
       
              If (IsNumeric(currChar) And (Not IsNumeric(nextChar))) Then
              s = s & currChar & " "
              Else
              s = s & currChar
              End If
          End If
    Next
    AddSpaced = Trim(s)
End Function



Sama faili möne teise lehe lahtrisse A1 sisesta oma aadress.
Lahtrisse B1 sisesta: =AddSpaced(A1)
LahtriB1 koopeerimispunktil-(ristil) tee topeltklikk.

Kood ei ole täiuslik, kuna loeb vaid arve ja täheühikuid ja ei möista kas nr 22-le järgnev täht (A) kuulub korterinumbri alla või on juba maakonnanime esimene täht.
Lahenduseks:
1.Lugeda lahtris olev string teistesse lahtritesse kasutades eraldajaks koma ja seejärel neid lahtreid vastavalt töödelda ning liita need uuesti kokku stringiks.
2.Lugeda array`sse maakondade nimed ja stringi töödelda juba selle alusel.


viimati muutis alfreedo 31.10.2012 23:01:27, muudetud 1 kord
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
eestirula3
HV kasutaja
eestirula3

liitunud: 07.12.2009




sõnum 31.10.2012 22:52:54 vasta tsitaadiga

See lahendus ei aidanud.

alfreedo kirjutas:
Pane näiteks Module2-e:

Function AddSpaced(Str As String) As String
Dim s As String
Dim i As Integer
Dim nextChar As String, currChar As String

   Application.Volatile
   
    If Len(Str) < 2 Then
        AddSpaced = Str
        Exit Function
    End If

    For i = 1 To Len(Str)
       
      nextChar = Mid(Str, i + 1, 1)
      currChar = Mid(Str, i, 1)
         
          If Not IsEmpty(currChar) Then
       
              If (IsNumeric(currChar) And (Not IsNumeric(nextChar))) Then
              s = s & currChar & " "
              Else
              s = s & currChar
              End If
          End If
    Next
    AddSpaced = Trim(s)
End Function

Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum
alfreedo
HV vaatleja

liitunud: 20.06.2010




sõnum 31.10.2012 23:11:29 vasta tsitaadiga

Vöibolla oleks kasulik panna oma failist väike näidis kuhugi üles.


tsitaat:

Excel viskas mingi vimpa sisse.....

tsitaat:

Nüüd juhtus vastupidi...


Kas on tegemist CSV, PDF vms faili töötlusega-laadimisega?
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
eestirula3
HV kasutaja
eestirula3

liitunud: 07.12.2009




sõnum 01.11.2012 10:02:53 vasta tsitaadiga

CSV. fail töötlemisega. Nüüd läksid andmed niimoodi, maakond ja tänavanmber läksid kokku:
Punane 21Harjumaa 13611 Tallinn
Tuulemäe 5Harjumaa 11411 Tallinn
Musta tee 22AViljandimaa 71008 Viljandi

alfreedo kirjutas:
Vöibolla oleks kasulik panna oma failist väike näidis kuhugi üles.


tsitaat:

Excel viskas mingi vimpa sisse.....

tsitaat:

Nüüd juhtus vastupidi...


Kas on tegemist CSV, PDF vms faili töötlusega-laadimisega?
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum
alfreedo
HV vaatleja

liitunud: 20.06.2010




sõnum 01.11.2012 22:05:32 vasta tsitaadiga

Teadmata URL-i, Csv-faili arvutisse saamise moodust, Exceli versiooni jms on raske millegagi aidata.
Ise kasutan järgnevat koodi juba aastaid ja pole probleemi olnud.


Sub Csv_st_Excelisse ()
Dim sfileName, sURL As String
sURL ="http://www.xxx/ .....downloadcsv.....
sfileName = "C:\Documents and Settings\Igapäevane\Andmed.xls"
SaveWebFile sURL, sfileName
End Sub

Function SaveWebFile(ByVal vWebFile As String, ByVal vLocalFile As String)
Dim oXMLHTTP As Object,  vFF As Long, oResp() As Byte
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", vWebFile, False
oXMLHTTP.send
Do While oXMLHTTP.ReadyState <> 4
DoEvents
Loop
oResp = oXMLHTTP.responseBody 'Returns the results as a byte array
vFF = FreeFile
If Dir(vLocalFile) <> "" Then Kill vLocalFile
Open vLocalFile For Binary As #vFF
Put #vFF, , oResp
Close #vFF
Set oXMLHTTP = Nothing
End Function
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
eestirula3
HV kasutaja
eestirula3

liitunud: 07.12.2009




sõnum 04.11.2012 14:17:22 vasta tsitaadiga

Saatsin Teile selle faili postkasti.

alfreedo kirjutas:
Teadmata URL-i, Csv-faili arvutisse saamise moodust, Exceli versiooni jms on raske millegagi aidata.
Ise kasutan järgnevat koodi juba aastaid ja pole probleemi olnud.


Sub Csv_st_Excelisse ()
Dim sfileName, sURL As String
sURL ="http://www.xxx/ .....downloadcsv.....
sfileName = "C:\Documents and Settings\Igapäevane\Andmed.xls"
SaveWebFile sURL, sfileName
End Sub

Function SaveWebFile(ByVal vWebFile As String, ByVal vLocalFile As String)
Dim oXMLHTTP As Object,  vFF As Long, oResp() As Byte
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", vWebFile, False
oXMLHTTP.send
Do While oXMLHTTP.ReadyState <> 4
DoEvents
Loop
oResp = oXMLHTTP.responseBody 'Returns the results as a byte array
vFF = FreeFile
If Dir(vLocalFile) <> "" Then Kill vLocalFile
Open vLocalFile For Binary As #vFF
Put #vFF, , oResp
Close #vFF
Set oXMLHTTP = Nothing
End Function
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Tarkvara »  Excel, abi vaja
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.