Telefonszámunk: 1-472-0679

Hozzászólások

11 bejegyzés megtekintése - 1-11 / 11
  • Szerző
    Bejegyzés
  • norbifun
    Felhasználó

      Sziasztok

      Bocsi, kicsit eltüntem, más irányba szólított a kötelesség.
      Ennek megfelelően a tömbképletekkel sem foglalkoztam.

      Ma ültem neki megint.
      Szeretnék tanulni, tehát a legoptimálisabb megoldások megértése lenne a cél.
      De velahoyg ezek az oszlopra vonatkozó dolgok nem akarnak összeállni a fejemben. Illetve nem vágom hogy az active cellák hogy működnek ilyen esetben.
      De ezt majd később.

      Most kipróbáltam ezzel a segédoszlopos megoldással. Sajnos ez azt az eredményt hozza, hogy ahol nincs a cellában semmi, azt 0 ként jeleníti meg.ez egy elég zavaró dolog. Próbáltam , hogy ha 0 az értéke akkor törölje, de nem tudom összerakni.

      Illetve elő jött még egy variáció.
      Az eredeti listában előfordulhat olyan, hogy a számok az alábbiak alapján vannak megadva
      241875,819,240434
      Ebben azt látni, hogy nincs kötőjel a középső számsornál, pedig kellene lennie…

      Arra gondoltam, hogy amikor lemegy a text to column (azért maradok ennél, mert nekem 365 van, de más gépeken, ahol ezt használni fogják sok esetben régebbi verzió él), akkor megvizsgálnám, hogy hány karakterből állnak a cella értékei. Ha 3 akkor kell elé egy kötőjel.
      És itt megint elakadtam.

      Szóval van bajom…:-)

      norbifun
      Felhasználó

        Köszönöm
        Ez így működik
        csak az a problémám, hogy folyamatosan új oszlopokat nyitok.
        Nincs arra valami megoldás, hogy a p oszlopban, ha talál kötőjelet azt cserélje le az o első 3 karakterére?
        Azért az egyszerűbb , mint oszlopot nyitni, eltüntetni.. stb
        Bár lehet tévedek… okoskodom, de megcsinálni nem tudom :-)))

        A formula-ra vonatkozó kérdés:
        mit jelent ez pontosan?
        mi a különbség formulaR1C1 és formula2R1C1 között?

        függvényben, RC pozicióval lehet megadni valahogy aktív cellát?

        norbifun
        Felhasználó

          szia

          köszönöm!
          A textsplit működik.
          Abban viszont kérnék segítséget, hogy a formula az mit takar pontosan? vagy a formula?

          Az uccsó bejegyzést is makróban kell megírnom. Soronként okés , azzal nincs bajom.
          De tömbösítve?
          Egy kicsit magas még ez nekem…
          tudok tömbösítve is ha függvényt megadni neki?
          hogy tudok ugyanarra a cellára hivatkozni? RC ? RC[0]? Activecell? nekem valahoyg egyiksem akar működni.
          Ez ugy eakkor kellene , amikor abban a cellában szeretném a műveletek elvégezni.
          Nem egyzserű nekem ez a tömbösítéses gondolkodás… 🙁

          norbifun
          Felhasználó

            Sziasztok

            Most ott járok, hogy a vesszőt _ -ra cseréltem. A vessző sok helyen elkavarta a formátumot, még akkor is, ha előtte külön szöveggé formáztam a teljes oszlopot. Azt nem értem ugyan hogy miért, az eredeti-cellánként vizsgálóban ezt ez esetben nem tette meg.

            De így működik az M oszlop karaktercseréje.
            TexttoColumns -al szétdobtam külön oszlopokba. Ettől mondjuk jobb lenne egy elegánsabb megoldás… pl az első része a cikkszámsornak az eredeti oszlopban marad, a második megy a következő (vagy egyéb kijelölt oszlopba- sorba – cellába)oszlopba, a harmadik még újabba

            Egy lépés maradt hátra , és azzal megakadtam
            Vannak azok a cellák, ahol kötőjel szerepel a cikkszámban. Ez azt jelenti, hogy az ugyanabban a cellában szerepelő, előtte lévő cikkszám első három karakterét kell behelyettesíteni a . És itt nem igazán boldogulok. Tudtok ebben nekem segíteni?

            Egyenlőre én most itt járok a gondolkodásban:
            Sub CsereBere()
            Dim ido As Date

            usor = Range(„M” & Rows.Count).End(xlUp).Row
            Range(„M1:M” & usor).Select
            Selection.NumberFormat = „@”

            Dim cikkszameleje As String
            cikkszameleje = Left(ActiveCell, 3)

            Range(„M1:M” & usor).Replace What:=”-„, Replacement:=cikkszameleje
            Range(„M1:M” & usor).Replace What:=”_”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”+”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”\”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”/”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=” „, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”OD.”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”,”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”________”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”_______”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”______”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”_____”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”____”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”___”, Replacement:=”_”
            Range(„M1:M” & usor).Replace What:=”__”, Replacement:=”_”
            Range(„M1:M” & usor).TextToColumns Destination:=Range(„o1″), other:=True, Otherchar:=”_”

            MsgBox Format(Now – ido, „mm:ss”)
            End Sub

            norbifun
            Felhasználó

              Az világos, hogy a több vesszőt korábban kell.
              Abban van nekem a zavar, hogy az egyéb karaktereket utóbb cseréli , és ebből keletkezhet a több vessző. (már ha van sorrend)

              norbifun
              Felhasználó

                nagyon köszönöm!!!
                Még egy kérdés. Ebben az esetben a műveletek sorrendje nem releváns a programozás tekintetében?
                Mindeg ymilyen sorrendben írom, ugyanazt az eredményt adja?
                Ha nem a válasz, akkor most miért került fordított sorrendben meghatározásra?

                Köszi

                norbifun
                Felhasználó

                  Szia

                  Nagyon szépen köszönöm, ez tényleg sokkal gyorsabb.

                  Nekem egy bajom van, hogy mindent szreetk megérteni 🙂
                  Az úgy nem működne, ha nem kell plusz oszlopot létrehozni, és replace -el függvénnyel megy?
                  Gondolataim alapján mennie kellene, csak nem tudom hogy lehet a range -el megadni azt, hogy ugyanaz a cella a végállomás…

                  KÖszi

                  • A hozzászólás módosításra került: 1 year, 10 months telt el-norbifun.
                  norbifun
                  Felhasználó

                    Az alapfeladatot sikerült megoldanom! csak a gyorsaságon kellene javítani!!!

                    norbifun
                    Felhasználó

                      Szia
                      A karaktereknek nincs semmi tudományos értékük, az nem jelentenek sem ÉS -t , VAGY-t, nincs logikai tartalmuk.

                      Én is pontosan ebbe az irányba indultam el. Az alábbi szösszenettel:

                      Sub UtódcikkszámokMeghatározásaAzÚjListában()
                      ‘ mivel először a számokat ésszerű allpotba kell hozni, így szöveggé kell formázni az oszlopot
                      Sheets(„Új betöltendő árlista”).Select
                      Range(„M2”).Select
                      Range(Selection, Selection.End(xlDown)).Select
                      Selection.NumberFormat = „@”
                      ‘Változók felvétele
                      ‘melyik sorban keresünk
                      Dim i As Long
                      i = 2
                      ‘milyen karaktert keresünk (k1=+;k2=szóköz;k3=/)
                      Dim k1 As String
                      k1 = „+”
                      Dim k2 As String
                      k2 = ” ”
                      Dim k3 As String
                      k3 = „/”
                      ‘mire akarjuk cserélni (+ helyett vessző (v); szóközhelyett semmi(s); / helyett vessző(v))
                      Dim v As String
                      v = „,”
                      Dim s As String
                      s = „”

                      ‘ a kötőjel helyére irandó karakterlánc
                      Dim cikkszameleje As String

                      Sheets(„Új betöltendő árlista”).Select
                      Do Until Sheets(„Új betöltendő árlista”).Cells(i, 1) = „”

                      If Cells(i, 13) <> „” Then
                      cikkszameleje = Left(Cells(i, 13), 3)
                      Cells(i, 13).Value = Replace(Cells(i, 13), „-„, cikkszameleje, 1)
                      Cells(i, 13).Value = Replace(Cells(i, 13), k1, v, 1)
                      Cells(i, 13).Value = Replace(Cells(i, 13), k3, v, 1)
                      Cells(i, 13).Value = Replace(Cells(i, 13), k2, v, 1)
                      Cells(i, 13).Value = Replace(Cells(i, 13), „OD.”, v, 1)

                      Cells(i, 13).Value = Replace(Cells(i, 13), „,,,,,,,,”, v, 1)
                      Cells(i, 13).Value = Replace(Cells(i, 13), „,,,,,,,”, v, 1)
                      Cells(i, 13).Value = Replace(Cells(i, 13), „,,,,,,”, v, 1)
                      Cells(i, 13).Value = Replace(Cells(i, 13), „,,,,,”, v, 1)
                      Cells(i, 13).Value = Replaccele(Cells(i, 13), „,,,,”, v, 1)
                      Cells(i, 13).Value = Replace(Cells(i, 13), „,,,”, v, 1)
                      Cells(i, 13).Value = Replace(Cells(i, 13), „,,”, v, 1)

                      End If
                      i = i + 1
                      Loop

                      End Sub

                      Rendben is lenne , ha a formátumok is egyeznének, de az sem egyezik.
                      Szóval a szöveggé formázok minden adatot az adott oszlopban , akkor helyreáll a rend, és megkapom a listát.
                      Most már „csak” szét kell szedni és a megfelelő cellába másolni.

                      Illetve lefuttatva a makrót, az a tapasztalat hogy nagyon sokáig tart(18 percig ment a 44 ezer soron végig)
                      Arra gondoltam, ha először egy szűrést csinálnék, akkor kihagyhatnám az üres sorokat.
                      Abban tudnátok segíteni, hogy ha leszűröm, akkor hogy tudom neki megadni a sorokat meghatározó változót, hogy csak a leszűrt sorokban lévő cellát ellenőrizze?

                      norbifun
                      Felhasználó

                        Nem sikerült a feltöltés, még egyszer

                        Attachments:
                        You must be logged in to view attached files.
                        norbifun
                        Felhasználó

                          Szia
                          Köszi a választ
                          MIcrosoft 365 -öt használok.
                          Általában igen, 6 számjegyből álló karakterek vannak benne, ha nem akkor van a kötőjel
                          Jól érted, egy cellában van. Ezt kell nekem kibontanom, és egy másik munkafüzeten elhelyezni 3 különböző cellában

                          Töltök fel most mintát.

                          A megoldás jó lehet, de mellette rengeteg művelet van, így biztosan csak a makró lehet megoldás.
                          A táblázat maga 44 ezer sor, amivel dolgozom. 🙁
                          A feladat az, hogy a második lapfül M oszlopában lévő adatok, az első lapfül c,d,e,f oszlopába kerüljön. mindegyik egy helyre. Azért a négy oszlop, mert ha négy adat van mindegyiknek legyen helye.
                          Ha lehet akkor azzal is bonyolítanám, hogy csak az esetben, ha esetleg egyezőség van a behelyezendő adat és a meglevő adat között, akkor ne csináljon semmit, ha nincs akkor az első üres oszlopba helyezze be az adatot
                          Köszönettel

                        11 bejegyzés megtekintése - 1-11 / 11