[Excel] Hulp bij macro

Pagina: 1
Acties:
  • 435 views sinds 30-01-2008
  • Reageer

  • havana
  • Registratie: Augustus 1999
  • Laatst online: 14-07 21:47
Ik wil in Excel een macro maken die het volgende doet:

IF Ax = (bepaalde waardes, bijvoorbeeld 1 OR 2 OR 46) THEN delete ROW

waarbij x staat dus voor cell A1:A500 of iets dergelijks

Ik krijg het ondanks de hulp van Yoeri (waarvoor dank :) ) niet voor elkaar.


code:
1
2
3
4
5
6
7
8
9
10
11
12
Dim theCell as Cell
Dim theArray(1 to 500) as integer
theArray() = (11, 2, 46)

ForEach theCell in Range(A1;Ax)
  For i = 1 to 500
    If theCell.content = theArray(i) Then
       theCell.SelectRow.Delete
       exit For
   endif
  next
Next


Wie helpt me verder?

DIT IS MIJN WEBSITE


  • Zerora
  • Registratie: September 2003
  • Laatst online: 07-07 20:17

Zerora

Ik Henk 'm!

Dus als er ergens in kolom A een waarde staat dan moet rij waarin die waarde staat verwijderd worden??

[ Voor 3% gewijzigd door Zerora op 21-05-2007 14:48 ]

Trans-life! :::: "All things change, whether from inside out or the outside in. That is what magic is. And we are magic too."


  • havana
  • Registratie: Augustus 1999
  • Laatst online: 14-07 21:47
Ja, maar alleen bij bepaalde waardes dus. (laten we zeggen 1, 2 of 46). In het echt zijn het er meer dan 150, die ik zojuist in een txt-file achter elkaar heb gezet.

Dus als A1 (of A2 of A3 of A4, etc) = 1 of 2 of 46 --> verwijder de hele rij

[ Voor 80% gewijzigd door havana op 21-05-2007 15:01 ]

DIT IS MIJN WEBSITE


Verwijderd

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim theCell as range
Dim theArray as variant
dim waarde as variant

theArray = array(11, 2, 46)
For Each theCell in Range("a1:a500")
  For each waarde in thearray
    If theCell.value = waarde Then
       theCell.entirerow.Delete
       exit For
   endif
  next
Next
overigens denk ik dat het voor grote bereiken heel wat sneller zal gaan als je gewoon een formule maakt en dan met een autofilter de zichtbare rijen verwijderd

  • havana
  • Registratie: Augustus 1999
  • Laatst online: 14-07 21:47
thx :)

Hij geeft nu echter als foutmelding bij array(11, 2, 46)

"ongeldig buiten procedure"

Ik moet voor een groot aantal bestanden doen dus een macro is denk ik de snelste optie.

[ Voor 34% gewijzigd door havana op 21-05-2007 15:24 ]

DIT IS MIJN WEBSITE


Verwijderd

het geheel dient uiteraard in een procedure "sub Rijenverwijderen {code} end sub" geplaatst.

  • havana
  • Registratie: Augustus 1999
  • Laatst online: 14-07 21:47
Ok,ga 't proberen.

Formule bouwen heb ik ook geprobeerd, maar die werd te lang :( ("formule te lang").

[edit]

Volgens mij werkt 't \o/

1000x bedankt :)

[ Voor 21% gewijzigd door havana op 21-05-2007 15:49 ]

DIT IS MIJN WEBSITE

Pagina: 1