Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Tekstitiedon sorttaus

Jamro [25.06.2016 20:17:33]

#

Miten saadaan sortattua tietty tekstitieto 1 - 500 rivin joukosta ja siirrettyä se samalle riville sarakkeeseen B(B1 - B500). ComboBox1 tieto siirretään A sarakkeen seuraavaan vapaaseen soluun Command 1-näppäimellä. Command 2-näppäimellä tehdään sorttaus ja siirto B sarakkeeseen vastaavalle riville.

CommandButton1_Click()

For Each Solu In Sheets("0").Range("A1:A500")
   If Solu.Text = "" Then
      Solu.Value = ComboBox1
          ComboBox1 = ""
       Exit For
   End If

Selostus saattaa olla epämääräinen, mutta toivottavasti joku ymmärtää mitä haen.

Mod. lisäsi kooditagit!

Metabolix [28.06.2016 17:57:31]

#

En ymmärrä. Mitä tarkoittaa ”saadaan sortattua tietty tekstitieto 1 - 500 rivin joukosta”? Mille ”samalle riville” se siirretään?

Jos haluat B-sarakkeeseen A-sarakkeen tiedot järjestyksessä, kannattanee ensin kopioida tiedot sellaisenaan ja sitten käyttää Sort-metodia.

groovyb [28.06.2016 20:37:14]

#

Ymmärsin että jos A:A sarake sisältää comboboxista valitun arvon, arvo siirretään B:B sarakkeen vastaavalle riville miltä arvo löytyi.

Jamro [29.06.2016 18:58:36]

#

Aloitetaanpa uudestaan, selostus oli kyllä aika epämääräinen.

Command1 näppäimellä siirretään ComboBox1 tekstitieto A-sarakkeen seuraavaan vapaaseen soluun.

Rivejä kertyy 1 - 500 (A1 - A500)


Klikattaessa Command2 näppäintä:

ComboBox1 sisältämä tekstitietoa verrataan A1 - A500 tietoihin. Jos vastaava tekstitieto löytyy niin sen jälkeen ComboBox1 tekstitieto kopioidaan B-sarakkeeseen samalle riville.
esim. A49 ---> B49

CommandButton1_Click()

For Each Solu In Sheets("0").Range("A1:A500")
   If Solu.Text = "" Then
      Solu.Value = ComboBox1
          ComboBox1 = ""
       Exit For
   End If
End Sub

CommandButton2_Click()

If ComboBox1=Sheets("0").Range("A1:A500") Then
     Sheet("0").Range("B????)=ComboBox1
   Exit Sub
 End If
End Sub

Toivottavasti tämä selvensi asiaa

Mod. lisäsi kooditagit!

Metabolix [29.06.2016 19:50:03]

#

No niin, eli yhtään mitään ei ollut tarkoitus sortata.

Tietenkään et voi verrata laatikon arvoa koko sarakkeeseen samalla kertaa, kuten edellä esität.

Käy silmukalla läpi A-sarake (kuten kohdassa 1), ja jos Solu.Text = ComboBox1, laita teksti vastaavaan kohtaan B-sarakkeeseen.

groovyb [29.06.2016 20:07:43]

#

Mistä arvot ilmestyvät comboboxiin? onko se sidottu A:A soluihin? Vai onko kenties tarkoitus aina kirjoittaa arvo, jolloin sen voisi korvata suoraan tekstilaatikolla?

Jamro [30.06.2016 19:50:05]

#

Comboboxin arvot on sidottu A:A soluihin. Comboboxin sisältöä verrataan A:A soluihin ja sen jälkeen ComboBoxin sisältö kopioidaan vastaavalle riville B:B soluun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta