Hirdetés

Keresés

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

  • PetX
    aktív tag

    Ha ezzel kezdted volna, fikázás helyett kapásból írtam volna a választ. Gondolom az ActiveCell.FormulaR1C1 = "=1+2+3" -ot használtad végül.

    Na mindegy, majd legközelebb, a jó kérdésre gyorsan meglesz a jó válasz.

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

  • PetX
    aktív tag

    nem ertem minek ehhez a teljes kod.

    Azt mondtad:
    "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. "

    Erre mondtam en, hogy marpedig ez a megoldas, fuzd ossze egy "=" es mukodni fog. A problemad megoldasanak semmi koze a teljes kododhoz.

    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

    Hihetetlen színvonalra süllyedt szegény VB topik :(

    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

    Hihetetlen színvonalra süllyedt szegény VB topik :(

    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

    Hihetetlen színvonalra süllyedt szegény VB topik :(

    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