Keresés

Új hozzászólás Aktív témák

  • PetX

    aktív tag

    válasz martonx #1164 üzenetére

    igen a formla tagfüggvény volt a megoldás.
    Legközelebb majd jobban fogalmazok ;)

  • PetX

    aktív tag

    válasz shev7 #1162 üzenetére

    Megoldódott.

    Akkor ezek szerint rosszul kérdeztem. Azt a tök egyszerű példát pontosan azért írtam, h ne kelljen leírnom pontosan mire is fogom használni, mert nem érdekes.

    Cél: Adott egy string pl.: "123$$$-321$$$567" egy .xml adatfile-bol.
    Megtörténik ebben a formában a kiolvasás és ezt követően a "$$$" jellel elválasztott értékeket számtanilag összeadni, DE úgy hogy a nyomonkövethetőség miatt ne csak a végeredmény szerepeljen a cellában, hanem az is hogy milyen értékeket adott(kivont) egymásból.

    A probléma az volt, hogy mikor a tömbben található stringeket, megpróbáltam összefűzni, és az elejére egy "=" hozzáadni akkor gyakorlatilag ugyan azt jelenítette meg a cellában.
    És én azt szerettem volna, hogy a cellában a végösszeg szerepeljen ha viszont kiválasztom a cellát akkor lássam benne az elkövetett műveleteket.

    De, mint modtam már megoldódott, máskor majd figyelek a pontos kérdésemre.

  • PetX

    aktív tag

    válasz martonx #1154 üzenetére

    Már elnézést, de ha neked ez banális probléma akkor sajnálom, nekem nem, ezért fordultam segítségért.

    Nem vagyok programozó, kényszerből kezdtem el írni az egészet, mert szükséges ahhoz amit csinálok.

    Ehhez a részhez kértem a segítséget:
    ActiveWorkbook.Worksheets("SZUMMA").Cells(CS_SOR, CS_OSZLOP) = xSTR

    Sub CSILLAG()
    Dim CS_SOR As Integer
    Dim OSZLOP As Integer
    Dim CS_OSZLOP As Integer
    Dim cella As Range
    Dim cim_1 As String
    Dim cim_2 As String
    Dim keres As String
    Dim INPUT_STR As String
    Dim SPLITTER() As String
    Dim xDB As Integer
    Dim COUNTNONBLANK As Integer 'file-ok megszámlálásához
    Dim MYRANGE As Range 'file-ok megszámlálásához
    Dim xSZAMOL As Integer 'az .xml file-ok db számát adja vissza
    Dim xSOR As Integer
    Dim xREG As String
    Dim xSTR As String


    'MsgBox ("csillag")

    Worksheets.Add().Name = "SZUMMA"
    keres = "$$$"
    Worksheets("Szamla").Select
    OSZLOP = 38

    ELORE:
    ' MENNYISÉG+TOTAL

    For i = 0 To 15
    Columns(OSZLOP).Select
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).Find(what:=keres)
    If Not cella Is Nothing Then 'ha talál akkor
    Sheets("Szamla").Select
    cella.Activate 'akkor aktiválja a cellát
    cim_1 = ActiveCell.Address
    While Not cim_1 = cim_2
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).FindNext(cella)
    cella.Activate
    cim_2 = ActiveCell.Address
    CS_OSZLOP = ActiveCell.Column
    CS_SOR = ActiveCell.Row

    INPUT_STR = Cells(CS_SOR, CS_OSZLOP)
    SPLITTER = Split(INPUT_STR, "$$$")

    For xDB = LBound(SPLITTER) To UBound(SPLITTER)
    If Right(SPLITTER(xDB), 1) = "-" Then 'ha csak egy negatív van a cellában akkor nem bántja
    SPLITTER(xDB) = (Replace(SPLITTER(xDB), "-", "")) * -1
    SPLITTER(xDB) = Replace(SPLITTER(xDB), ".", ",")
    Else
    SPLITTER(xDB) = Replace(SPLITTER(xDB), ".", ",")
    SPLITTER(xDB) = "+" + SPLITTER(xDB)
    End If
    xSTR = xSTR + SPLITTER(xDB)

    Next xDB
    ActiveWorkbook.Worksheets("SZUMMA").Cells(CS_SOR, CS_OSZLOP) = xSTR
    xSTR = ""
    Wend
    Else
    End If

    OSZLOP = OSZLOP + 7
    Next i

    If OSZLOP = 150 Then
    OSZLOP = 42
    GoTo ELORE
    Else
    If OSZLOP = 154 Then
    OSZLOP = 43
    Else
    End If
    End If

    'EGYSÉGÁR
    For j = 0 To 15
    Columns(OSZLOP).Select
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).Find(what:=keres)
    If Not cella Is Nothing Then 'ha talál akkor
    Sheets("Szamla").Select
    cella.Activate 'akkor aktiválja a cellát
    cim_1 = ActiveCell.Address
    While Not cim_1 = cim_2
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).FindNext(cella)
    cella.Activate
    cim_2 = ActiveCell.Address
    CS_OSZLOP = ActiveCell.Column
    CS_SOR = ActiveCell.Row

    INPUT_STR = Cells(CS_SOR, CS_OSZLOP)
    SPLITTER = Split(INPUT_STR, "$$$")
    ' For xDB = LBound(SPLITTER) To UBound(SPLITTER)
    'Sheets("SZUMMA").Select
    xDB = 0
    ActiveWorkbook.Worksheets("SZUMMA").Cells(CS_SOR, CS_OSZLOP) = SPLITTER(xDB)
    ' Next xDB
    Wend
    Else
    End If

    OSZLOP = OSZLOP + 7
    Next j
    MsgBox ("kész")
    End Sub

  • PetX

    aktív tag

    válasz martonx #1154 üzenetére

    Már elnézést, de ha neked ez banális probléma akkor sajnálom, nekem nem, ezért fordultam segítségért.

    Nem vagyok programozó, kényszerből kezdtem el írni az egészet, mert szükséges ahhoz amit csinálok.

    Ehhez a részhez kértem a segítséget:

    Sub CSILLAG()
    Dim CS_SOR As Integer
    Dim OSZLOP As Integer
    Dim CS_OSZLOP As Integer
    Dim cella As Range
    Dim cim_1 As String
    Dim cim_2 As String
    Dim keres As String
    Dim INPUT_STR As String
    Dim SPLITTER() As String
    Dim xDB As Integer
    Dim COUNTNONBLANK As Integer 'file-ok megszámlálásához
    Dim MYRANGE As Range 'file-ok megszámlálásához
    Dim xSZAMOL As Integer 'az .xml file-ok db számát adja vissza
    Dim xSOR As Integer
    Dim xREG As String
    Dim xSTR As String

    'MsgBox ("csillag")

    Worksheets.Add().Name = "SZUMMA"
    keres = "$$$"
    Worksheets("Szamla").Select
    OSZLOP = 38

    ELORE:
    ' MENNYISÉG+TOTAL

    For i = 0 To 15
    Columns(OSZLOP).Select
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).Find(what:=keres)
    If Not cella Is Nothing Then 'ha talál akkor
    Sheets("Szamla").Select
    cella.Activate 'akkor aktiválja a cellát
    cim_1 = ActiveCell.Address
    While Not cim_1 = cim_2
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).FindNext(cella)
    cella.Activate
    cim_2 = ActiveCell.Address
    CS_OSZLOP = ActiveCell.Column
    CS_SOR = ActiveCell.Row

    INPUT_STR = Cells(CS_SOR, CS_OSZLOP)
    SPLITTER = Split(INPUT_STR, "$$$")

    For xDB = LBound(SPLITTER) To UBound(SPLITTER)
    If Right(SPLITTER(xDB), 1) = "-" Then 'ha csak egy negatív van a cellában akkor nem bántja
    SPLITTER(xDB) = (Replace(SPLITTER(xDB), "-", "")) * -1
    SPLITTER(xDB) = Replace(SPLITTER(xDB), ".", ",")
    Else
    SPLITTER(xDB) = Replace(SPLITTER(xDB), ".", ",")
    SPLITTER(xDB) = "+" + SPLITTER(xDB)
    End If
    xSTR = xSTR + SPLITTER(xDB)

    Next xDB
    ActiveWorkbook.Worksheets("SZUMMA").Cells(CS_SOR, CS_OSZLOP) = xSTR
    xSTR = ""
    Wend
    Else
    End If

    OSZLOP = OSZLOP + 7
    Next i

    If OSZLOP = 150 Then
    OSZLOP = 42
    GoTo ELORE
    Else
    If OSZLOP = 154 Then
    OSZLOP = 43
    Else
    End If
    End If

    'EGYSÉGÁR
    For j = 0 To 15
    Columns(OSZLOP).Select
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).Find(what:=keres)
    If Not cella Is Nothing Then 'ha talál akkor
    Sheets("Szamla").Select
    cella.Activate 'akkor aktiválja a cellát
    cim_1 = ActiveCell.Address
    While Not cim_1 = cim_2
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).FindNext(cella)
    cella.Activate
    cim_2 = ActiveCell.Address
    CS_OSZLOP = ActiveCell.Column
    CS_SOR = ActiveCell.Row

    INPUT_STR = Cells(CS_SOR, CS_OSZLOP)
    SPLITTER = Split(INPUT_STR, "$$$")
    ' For xDB = LBound(SPLITTER) To UBound(SPLITTER)
    'Sheets("SZUMMA").Select
    xDB = 0
    ActiveWorkbook.Worksheets("SZUMMA").Cells(CS_SOR, CS_OSZLOP) = SPLITTER(xDB)
    ' Next xDB
    Wend
    Else
    End If

    OSZLOP = OSZLOP + 7
    Next j
    MsgBox ("kész")
    End Sub

  • PetX

    aktív tag

    válasz martonx #1154 üzenetére

    Már elnézést, de ha neked ez banális probléma akkor sajnálom, nekem nem, ezért fordultam segítségért.

    Nem vagyok programozó, kényszerből kezdtem el írni az egészet, mert szükséges ahhoz amit csinálok.

    Ehhez a részhez kértem a segítséget:

    Sub CSILLAG()
    Dim CS_SOR As Integer
    Dim OSZLOP As Integer
    Dim CS_OSZLOP As Integer
    Dim cella As Range
    Dim cim_1 As String
    Dim cim_2 As String
    Dim keres As String
    Dim INPUT_STR As String
    Dim SPLITTER() As String
    Dim xDB As Integer
    Dim COUNTNONBLANK As Integer 'file-ok megszámlálásához
    Dim MYRANGE As Range 'file-ok megszámlálásához
    Dim xSZAMOL As Integer 'az .xml file-ok db számát adja vissza
    Dim xSOR As Integer
    Dim xREG As String
    Dim xSTR As String

    'MsgBox ("csillag")

    Worksheets.Add().Name = "SZUMMA"
    keres = "$$$"
    Worksheets("Szamla").Select
    OSZLOP = 38

    ELORE:
    ' MENNYISÉG+TOTAL

    For i = 0 To 15
    Columns(OSZLOP).Select
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).Find(what:=keres)
    If Not cella Is Nothing Then 'ha talál akkor
    Sheets("Szamla").Select
    cella.Activate 'akkor aktiválja a cellát
    cim_1 = ActiveCell.Address
    While Not cim_1 = cim_2
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).FindNext(cella)
    cella.Activate
    cim_2 = ActiveCell.Address
    CS_OSZLOP = ActiveCell.Column
    CS_SOR = ActiveCell.Row

    INPUT_STR = Cells(CS_SOR, CS_OSZLOP)
    SPLITTER = Split(INPUT_STR, "$$$")

    For xDB = LBound(SPLITTER) To UBound(SPLITTER)
    If Right(SPLITTER(xDB), 1) = "-" Then 'ha csak egy negatív van a cellában akkor nem bántja
    SPLITTER(xDB) = (Replace(SPLITTER(xDB), "-", "")) * -1
    SPLITTER(xDB) = Replace(SPLITTER(xDB), ".", ",")
    Else
    SPLITTER(xDB) = Replace(SPLITTER(xDB), ".", ",")
    SPLITTER(xDB) = "+" + SPLITTER(xDB)
    End If
    xSTR = xSTR + SPLITTER(xDB)

    Next xDB
    ActiveWorkbook.Worksheets("SZUMMA").Cells(CS_SOR, CS_OSZLOP) = xSTR
    xSTR = ""
    Wend
    Else
    End If

    OSZLOP = OSZLOP + 7
    Next i

    If OSZLOP = 150 Then
    OSZLOP = 42
    GoTo ELORE
    Else
    If OSZLOP = 154 Then
    OSZLOP = 43
    Else
    End If
    End If

    'EGYSÉGÁR
    For j = 0 To 15
    Columns(OSZLOP).Select
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).Find(what:=keres)
    If Not cella Is Nothing Then 'ha talál akkor
    Sheets("Szamla").Select
    cella.Activate 'akkor aktiválja a cellát
    cim_1 = ActiveCell.Address
    While Not cim_1 = cim_2
    Set cella = ActiveWorkbook.Worksheets("Szamla").Columns(OSZLOP).FindNext(cella)
    cella.Activate
    cim_2 = ActiveCell.Address
    CS_OSZLOP = ActiveCell.Column
    CS_SOR = ActiveCell.Row

    INPUT_STR = Cells(CS_SOR, CS_OSZLOP)
    SPLITTER = Split(INPUT_STR, "$$$")
    ' For xDB = LBound(SPLITTER) To UBound(SPLITTER)
    'Sheets("SZUMMA").Select
    xDB = 0
    ActiveWorkbook.Worksheets("SZUMMA").Cells(CS_SOR, CS_OSZLOP) = SPLITTER(xDB)
    ' Next xDB
    Wend
    Else
    End If

    OSZLOP = OSZLOP + 7
    Next j
    MsgBox ("kész")
    End Sub

  • PetX

    aktív tag

    Sziasztok!

    egy olyan problémám van, hogy string-et tartalmazó változó értékét szeretném visszaalakítani integer típusuvá.
    Pontosabban:
    változó értéke pl:
    a="0-99-56+64"

    A lényeg, hogy a benne található műveletek megmaradjanak a cellában, viszont amit mutat az az eredmény legyen.

    Gondoltam, hogy összefűzöm az értéket szimplán egy "=" jellel de nem akar sikerülni. :O :W

    Tudnátok ebben segíteni?

  • PetX

    aktív tag

    Sziasztok!

    Légyszíves aki tud segítsen.

    .XML file-okat kellene kiolvasni, egy könyvtáron belül több file.
    Egy excel táblában szerepelnek a file-ok nevei (mivel az elnvezésük azonos a gyári számaikkal, elektromos mérőórák kiolvasási adatai).

    Na már most, hogyan lehet macroval/visual basic-el megoldani azt, hogy az excelben eltárolt file nevek alapján behívjam az xml-t?

    Ez az egy amit nem tudok megoldani, ki tudom szedni az .xml-ekből amire szükségem van csak nem tudom behívni, hogy automatikusan lefuttatom a macrot és hivogassa be egymás után.

    Arra gondoltam, hogy magát a file nevet változóként használom és megadom neki azt az elérési útban. De nem megy. Nem vagyok járatos benne, ha tud valaki segíteni azt nagyon megköszönném!

Új hozzászólás Aktív témák

Hirdetés