Keresés megnevezett tartományra, és beíllesztés
2012-09-18T10:41:34+02:00
2012-09-18T19:00:39+02:00
2022-07-23T21:34:26+02:00
  • Szia!

    Úgy tökéletesen jó, ahogy most működik a termékek keresésével.
    Ugyan így kellene működnie. A keresőmezőben el kezdem gépelni a nevet és egyből adja azokat amikben a begépelt betűk megtalálhatóak, és utána kiválasztom azt amelyik kell, és beillesztené a következő üres sorba. Csak ugye képletekkel együtt kellene beilleszteni. Ennél nem kell db szám sem, csak másolja be a kiválasztott tartományokat. Át tudnád alakítani nekem ezt a kódot?

    Köszi
    Mutasd a teljes hozzászólást!
  • A programod logikáját neked kell tudnod, hogy mikor akarod feltölteni a listboxot, pl. a munkafüzet megnyitásakor, vagy egy gombra kattintásra, esetleg valami más esemény bekövetkezésekor.
    Az adott tartomány másolása detto, esetleg lehetne a listbox2 click eseményében is....
    Persze másolás előtt itt is vizsgálni kell, hogy nem üres-e a listbox.


    Micu:
    Ez csak az én szokásom, hogy lehetőleg kerülöm a szóközös munkalapneveket, fájlneveket, ékezetes váltózóneveket stb., hogy később máshol ne legyen gond.
    Tudom, hogy megengedi a rendszer, de jobb a békesség.

    pl. munkalapfüggvényként hivatkozva már aposztróf is kellene akkor hozzá...
    Mutasd a teljes hozzászólást!
  • Szia!

    Köszi a segítséget, egyébként te csináltad nekem ezt a keresőt.
    Viszont mivel én nem értek még igazán a VB-hez, ezért nem sikerül összehoznom azokkal amiket javasoltatok. Abban segíttenél, hogy mit módisítsak a kódban, és hol, mert próbálom, de sajna nem értek hozzá.

    Köszönöm
    Mutasd a teljes hozzászólást!
  • A szóközös munkalapnevet én nem erőltetném

    Miért? Amíg "-be van semmi baj vele.
    Mutasd a teljes hozzászólást!
  • Illetve a másoláshoz pl:

    Worksheets("megnevezetttartományok").Range(ListBox2.Value).Copy Destination:=Worksheets("Munka2").Range("g20")


    A szóközös munkalapnevet én nem erőltetném, írd egybe vagy tegyél aláhúzást benne, különben csak a gond lehet vele.

    Mutasd a teljes hozzászólást!
  • Teszel egy ListBox2-t a munkalapra.

    Majd feltöltöd:

    Dim nev As Name For Each nev In ActiveWorkbook.Names ListBox2.AddItem nev.Name Next

    esetleg lehetne szűrni is valami alapján, hogy nem adjon hozzá minden nevet pl. csak mondjuk ami 1-el kezdődik

    If Left(nev, 1) = "1" Then
    ListBox2.AddItem nev.Name
    End If

    már ha nem akarsz minden nevet hozzáadni...

    Mutasd a teljes hozzászólást!
  • range("tartományneve") megcímzi.

    Vagy változóból:
    x="tartományneve"
    range(x)

    Utána már azt csinálsz vele, amit egy range("a1:C10") forma esetén csinálnál.
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Van egy excel munkafüzetem, az első munkalaphoz van egy kód:

    Option Explicit

    Private Sub CommandButton1_Click()
    Dim forras As Worksheet, cel As Worksheet
    Dim sor As Long
    Dim darab
    If ListBox1.ListCount = 0 Then
    MsgBox "Nincs kiválasztva áru!", vbCritical
    Exit Sub
    End If
    darab = InputBox("Kérem a darabszámot", ListBox1.Value, 0)
    If Not IsNumeric(darab) Then
    MsgBox "Hibás darabszám!", vbCritical
    Exit Sub
    Else
    darab = CInt(darab)
    End If
    Set forras = Worksheets("Munka2")
    Set cel = Worksheets("Munka1")
    With cel
    sor = SorMax(.Range("a:a")) + 1

    .Cells(sor, 2).Value = ListBox1.Value
    .Cells(sor, 3).Value = darab
    .Cells(sor, 4).NumberFormat = "#,##0 $"
    .Cells(sor, 4).Value = _
    Application.VLookup(.Cells(sor, 2).Value, forras.Range("a1:c" & SorMax(forras.Range("a:a"))), 3, False)
    .Cells(sor, 1).Value = _
    Application.VLookup(.Cells(sor, 2).Value, forras.Range("a1:c" & SorMax(forras.Range("a:a"))), 2, False)
    End With
    End Sub

    Private Sub TextBox1_Change()
    Dim munkalap As Worksheet
    Dim tartomany As Range
    Dim keres, elsotalalat
    ListBox1.Clear
    Set munkalap = Worksheets("Munka2")
    Set tartomany = munkalap.Range("a1:a" & SorMax(munkalap.Range("a:a")))
    With tartomany
    Set keres = .Find(What:=TextBox1.Text, Lookat:=xlPart)
    If Not keres Is Nothing Then
    elsotalalat = keres.Address
    Do
    Set keres = .FindNext(keres)
    ListBox1.AddItem munkalap.Cells(keres.Row, 1)
    Loop While Not keres Is Nothing And keres.Address <> elsotalalat
    End If
    End With
    End Sub


    Ez azt csinálja nekem, hogy a második munkalapról kitudok keresni termékeket, majd miután kiválasztottam a megfelelőt, akkor beilleszti azt nekem cikkszámmal árral db számmal. Ez jól működik.

    A kérdés az lenne, hogy a harmadik munkalapra, csináltam táblázatokat, amikben képletek vannak. A táblázatok azon része, amelyik kék színű, az el van nevezve. Lehet e az elnevezésekre keresni ugyan ilyen módon, és azokat az elnevezett tartományokat beilleszteni, arra a munkalapra, ahol a kereső van?
    Ráadásul úgy, hogy a képletek is megmaradjanak.

    Mellékeltem a munkafüzetet.

    Előre is köszi a segítségeket
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd