Avatar billede zaknafein Praktikant
16. oktober 2003 - 11:37 Der er 26 kommentarer og
2 løsninger

Select Hver anden række

Jeg har en kæmpe stort excel regne ark. Jeg skal have markeret hver anden række så jeg kan kopiere dem ind i et nyt regne ark.
Så skal jeg markere de andre hver andet række, og kopiperer dem ind i det nye regneark også.
På den måde kan jeg få dem til at stå ud for hinanden i hver deres kolonne.
Avatar billede martin_moth Mester
16. oktober 2003 - 11:42 #1
2 sek...
Avatar billede martin_moth Mester
16. oktober 2003 - 11:56 #2
Hmm - troede det var så simpelt

dim i as long
For i = 2 to 65536 step 2
  Rows(i).EntireRow.Select
next i

Men når man selecter en ny række deselecter man automatisk den tidligere markerede række. Kan ikke en metode som "AddToSelectionSet" eller noget i den stil. Anyone?
Avatar billede zaknafein Praktikant
16. oktober 2003 - 11:57 #3
hmm Hvorhenne i excell er det du kan indtaste funktioner og ting???
Så finder jeg bare en excell reference..
Avatar billede aheiss Praktikant
16. oktober 2003 - 11:58 #4
For at undgå makroer m.m. kunne du jo i dit opsamlingsark kopiere :

=HVIS(REST(CELLE("række";Ark1!A1);2)=1;Ark1!A1;"")

ud fra kolonne a til ex.c og denne

=HVIS(REST(CELLE("række";Ark1!C1);2)=1;"";Ark1!A1)

fra d til f

Når du kopiere formlerne ned vil kolonne a-c indholde alle de ulige rækker og d til f alle de lige. Så skulle det jo efterfølgende være en smal sag at sortere dem på plads.
Avatar billede martin_moth Mester
16. oktober 2003 - 11:58 #5
VBA til Excel
Avatar billede martin_moth Mester
16. oktober 2003 - 11:59 #6
Mener du ikke
=HVIS(REST(CELLE("række";Ark1!A1)/2)=1;Ark1!A1;"")
?
Avatar billede zaknafein Praktikant
16. oktober 2003 - 11:59 #7
Dammit.  Jeg aner intet om excell.. Nu kommer der nogle frække ord som "opsamlingsark"..
Avatar billede martin_moth Mester
16. oktober 2003 - 11:59 #8
Sorry,
=HVIS(REST(CELLE("række";Ark1!A1)/2)=0;Ark1!A1;"")

Skal nok blande mig uden om nu :o)
Avatar billede zaknafein Praktikant
16. oktober 2003 - 12:01 #9
hvor smider jeg denne kode ind?
i feltet for oven?
skal jeg markere hele min kolonne og paste det ind eller hvad?
Avatar billede zaknafein Praktikant
16. oktober 2003 - 12:06 #10
Hvis jeg indsætter det får jeg bare et felt hvor der står #NAME?
Der kan jeg vælge Alle og top 10...
Men hvor kan jeg se resultatet?
Avatar billede martin_moth Mester
16. oktober 2003 - 12:15 #11
Hvis du har excel på engelsk skal du nok ikke bruge de danske kommandier.
"Hvis" = "If" osv...
Ikke sikker på hvad du mener med Alle og top 10?
Avatar billede zaknafein Praktikant
16. oktober 2003 - 12:41 #12
Så nu har jeg den (i teorien)
Jeg skal jo bare køre en
for i = 0 to mitRegneArk.Maxrække
Range(i + ":" + i).Select
next

så skal jeg bare ha et simpel modulus check ind så jeg får hver anden.

Men jeg kan IKKE finde en reference til Excel / VBscript nogen steder. Så jeg ved ikke hvad mitRegneArk  og  Maxrække hedder ?????
Avatar billede aheiss Praktikant
16. oktober 2003 - 12:45 #13
Hvis du har 3 kolonner med data, kan du i dit opsamlingsark bruge
=HVIS(REST(CELLE("række";Ark1!A1);2)=1;Ark1!A1;"") i kolonne a - c og
=HVIS(REST(CELLE("række";Ark1!D1);2)=1;Ark1!A2;"") i kolonne d - f
Nu vil hver anden række være tom, og de øvrige rækker være som du ønsker.

Det lyder til at du har en engelsk version Dvs. HVIS, REST, CELLE og række skal oversættes ! I hjælp kan du helt sikkert finde IF og CELLS("rows"), men REST ved jeg ikke lig hvad hedder.

Det lyder til at du bruger Autofilter, hvilket skulle være OK, med de nye rettelser.
Avatar billede martin_moth Mester
16. oktober 2003 - 12:52 #14
zaknafien: Hvad er forskellen på det du laver og det jeg laver (VBA)? (hint: ingen forskel;-). Din løsning vil OGSÅ deselecte tidligere rækker.

Hjælp til VBA finder du på mdsn.microsoft.com
Avatar billede zaknafein Praktikant
16. oktober 2003 - 13:08 #15
Det hele står i samme kolonne.
DA00
Kolera
DA000
Kolera forårsaget af vibrio cholerae (klassisk kolera)
DA001
Kolera forårsaget af Vibrio cholerae eltor
DA009
Kolera uden specifikation

osv.

så DA00  bliver til ID i første række i første kolonne
og Kolera er værdien i første række i anden kolonne

osv.
Avatar billede aheiss Praktikant
16. oktober 2003 - 13:29 #16
En anden mulighed.
Lav en ny kolonne A i dit master ark.
Indsæt tæller 1 til mange nedefter.
Lav en ny kolonne A i dit opsummerings ark.
Indsæt tæller 1 til mange nedefter.
I opsummeringsarket indsættes :
I B1 : =LOPSLAG(A1+A2-2;Ark1!A1:B15;2;FALSK) og kopieres ned
I C1 : =LOPSLAG(A1+A1;Ark1!A1:B15;2;FALSK) og kopieres ned
LOPSLAG = LOOKUP i den engelske udgave mener jeg.
Avatar billede oyejo Nybegynder
16. oktober 2003 - 13:52 #17
zaknafein: Er antall kolonner alltid et partall?
Og har jeg forstått det riktig hvis.
Først skal alle oddetallkolonner komme, (A,C,E...) deretter skal antall partallkoloner komme (B,D,F...) ?
HVIS DET ER TILFELLET, TROR JEG AT JEG HAR EN ENKEL LØSNING SOM JEG SELV BENYTTTER
Avatar billede zaknafein Praktikant
16. oktober 2003 - 13:56 #18
Jeg vil sige at jeg har gået en lidt anden vej nu...

Jeg importere XML dokumentet i excel.
Så kopierer jeg hele den kollonne (hvor hver anden række skal over i en ny) til et tomt excel ark.
så gemmer jeg som en tekstfil.
Så åbner jeg den txt fil i ASP.
tager hver anden linie og skriver ud i en browser.
Så kopierer jeg den udskrift fra browser til et nyt excel ark.
så skriver jeg de andre - hver anden linie ud til skærmen og viser dem i en browser.
Disse nye paster jeg så ind i kolonne 2 på den nye regne ark....

Men nu virker det...

Tak for de mange forslag. OG jeg synes hvertfald martin_moth  og aheiss  skal ha point....
Avatar billede martin_moth Mester
16. oktober 2003 - 14:08 #19
Så får du da et svar :o) - selvom mit svar var 10000 km væk fra løsningen :o(
Avatar billede zaknafein Praktikant
16. oktober 2003 - 14:10 #20
Jeg er skuffet over hvor SVÆRT det er at finden en DOM til vb scripting af Excell....

Aldrig har jeg fået så sølle resultater på google.... Føj excell.
Avatar billede aheiss Praktikant
16. oktober 2003 - 14:18 #21
Jeg svarer også lige. Du kan bruge denne makro i stedet. den er smartere tror jeg.

Hvis dine ark hedder Ark1 og Ark 2 og data ligger i kolonne A og B, så kan du køre makroen.

Sub Flytdata()
Dim omrode As Range
Dim omrode2 As Range
Set omrode = Sheets("ark1").Range("a:b")
Set omrode2 = Sheets("ark2").Range("a:b")
For a = 1 To 65000 Step 2
If omrode(a, 1) = "" Then
GoTo slet
Else
omrode2(a, 1) = omrode(a, 1)
omrode2(a, 2) = omrode(a + 1, 1)
End If
Next
slet:
      Range("a2").EntireRow.Delete
Do
cc = ActiveSheet.UsedRange.Rows.Count
      Range("a1").Select
      ActiveCell.End(xlDown)(2, 1).Select
      Selection.EntireRow.Delete
Loop Until ActiveCell.Row >= cc
End Sub
Avatar billede oyejo Nybegynder
17. oktober 2003 - 08:03 #22
zaknafein: jeg har et regneark som gjør akkurat det du er ute etter.
Hvis du legger igjen din mailadresse. kan jeg sende arket til deg.
Du limer da bare dine data inn i arket. Så vil de bli ordnet i to kolonner.
Avatar billede oyejo Nybegynder
17. oktober 2003 - 08:05 #23
For intereserte:
Koden jeg har benytte i makroen ser slik ut:
Public Sub EnKolonneTilTo()

Dim i As Long, n As Long, x As Long
Dim lgFlagg As Long
Dim vMatrise As Variant
Dim lgSisteRad As Long

  lgSisteRad = ActiveSheet.Cells(65000, 1).End(xlUp).Row
  ReDim vMatrise(lgSisteRad / 2, 2)

  lgFlagg = 1
  x = 1
  For n = 1 To lgSisteRad
      vMatrise(x, lgFlagg) = ActiveSheet.Cells(n, 1)
   
      If lgFlagg = 1 Then
        lgFlagg = 2
      Else
        lgFlagg = 1
        x = x + 1
      End If
  Next n
 
  ActiveSheet.Range(Cells(1, 1), Cells(lgSisteRad, 2)).ClearContents
 
  ActiveSheet.Range(Cells(1, 1), Cells(UBound(vMatrise, 1), _
  UBound(vMatrise, 2))) = vMatrise

End Sub
Avatar billede zaknafein Praktikant
17. oktober 2003 - 08:15 #24
Hehe oyejo  ja den virker  lidt. men det gør noget underligt....

Den sortere mine data ud i samme nye kolonne.
I mine data er hver anden et ID og hver anden et ord.

Så sortere din makron dem sådan her

ord
ord
ord
osv...
ID
ID
ID
osv...

og så kommer der igen en masse ord til sidst.
Men jeg kunne i det mindste markere en gruppe af gangen ud til en ny kolonne. Så jeg kunne have brugt den :)
Avatar billede oyejo Nybegynder
17. oktober 2003 - 08:28 #25
Ja det er noe som er feil, skal prøve å rette koden, så kommer jeg tilbake
Avatar billede oyejo Nybegynder
17. oktober 2003 - 08:38 #26
zaknafein:
Den viker hvis du ikke har overskriftrad, og utgangspunktet er kolonne A. Hvis du starter i Celle A1. slik:
ord1
Tall1
ord2
Tall2
ord3
Tall3
ord4
Tall4
Så blir resultatet hos meg:
ord1    Tall1
ord2    Tall2
ord3    Tall3
ord4    Tall4
Avatar billede oyejo Nybegynder
17. oktober 2003 - 08:45 #27
Det kreves også at det ikke er tomme celler i dine data i kollonnen før du begynner.
Du må altså starte i Celle A1 og det må være data i alle celler nedover til din siste celle med data.
Hvis det ikke er det, er det ikke noe proble å lage en kode som fjerner de tomme cellene
Avatar billede oyejo Nybegynder
17. oktober 2003 - 08:48 #28
Beklager jeg har glemt å si at det må stå:
option base 1 på linjen før public function. slik

Option Explicit

Option Base 1

Så kommer denne linjen

Public Sub EnKolonneTilTo()
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Stort udvalg af Excel kurser til alle niveauer og jobfunktioner

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis