Avatar billede dkpret Nybegynder
18. marts 2010 - 14:56 Der er 6 kommentarer og
1 løsning

Kopiere en eller flere kolonner der opfylder betingelser

Hej

Excel 2003, Windows XP, VBA

Jeg ønsker at finde og kopiere de kolonner der opfylder bestemte betingelser i række 2 på ark1 og derefter kopiere dem til ark3, startende i kolonne 2 -
Som eksempel - jeg ønsker at finde de kolonner der har værdien 3 i række 2 på ark1 og kopiere disse kolonner til ark 3. startende f.eks. i kolonne 2
Eks. Source (ark1)

********************************
xx    yy      zz      xy      yz      zx
1      2      3      4        2      3
aa    bb    cc    dd    ee    ff
gg    hh      ii    jj      kk      ll
mm  nn    oo  pp    qq    rr
********************************
Eks. Output (ark3)
********************************
      zz    zx
      3    3
      cc    ff
      ii      ll
      oo    rr
********************************

Dette spørgsmål er meget lig med http://www.eksperten.dk/spm/796214, som drejer sig om kopiering af rækker.

Er ny bruger på denne side - men glæder mig meget til at fordybe mig i alle de rigtig gode excel spørgsmål og svar.

På forhånd tak.
Avatar billede supertekst Ekspert
18. marts 2010 - 15:09 #1
Hvordan forestiller du dig kriterierne skal angives?

og velkommen til....
Avatar billede supertekst Ekspert
18. marts 2010 - 15:40 #2
Indlægges på Ark1 (Højreklik på fanen - vis programkode)
Aktiveres ved højreklik på ønskede værdi i ønskede række
--------------------------------------------------------

Dim værdi As Variant, række As Long, tilKol As Byte
Const startKolonne = 2
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    værdi = Target.Value
    Cancel = True
   
    tilKol = startKolonne
    findværdi værdi, Target.Row
   
End Sub
Private Sub findværdi(værdi, række)
    For kol = 1 To ActiveCell.SpecialCells(xlLastCell).Column
        If Cells(række, kol) = værdi Then
            kopierKolonne kol, tilKol
        End If
    Next kol
End Sub
Private Sub kopierKolonne(fraKol, tilKol)
    Columns(fraKol).Select
    Selection.Copy
   
    ActiveWorkbook.Sheets("Ark3").Activate
    ActiveSheet.Cells(1, tilKol).Select
    ActiveSheet.Paste
    tilKol = tilKol + 1
    Application.CutCopyMode = False
   
    ActiveWorkbook.Sheets("Ark1").Activate
End Sub
Avatar billede dkpret Nybegynder
18. marts 2010 - 17:15 #3
Hej Supertekst

Du kom mig i forkøbet :-)
Havde egenlig tænkt mig selv at rette søgekriteriet i koden - men den løsning du er kommet med kan ikke være bedre og det virker efter hensigten.

Jeg sender dine point afsted.

Mange tak
Avatar billede dkpret Nybegynder
18. marts 2010 - 17:20 #4
Hej Supertekst

Skal du sende ovenstående kode som et svar for at jeg kan acceptere svaret og så du dermed får pointene. ?

Mvh
Avatar billede supertekst Ekspert
18. marts 2010 - 17:30 #5
Fint - selv tak.

Nej - du accepterer blot dette svar.

(ps: SVAR er kun fra "bidragsyderne" som tegn på at løsningen er nær - opgavestiller anvender KOMMENTAR)
Avatar billede dkpret Nybegynder
18. marts 2010 - 17:36 #6
Det husker jeg fremover.
Avatar billede supertekst Ekspert
18. marts 2010 - 17:45 #7
ok - "du er ikke den første"
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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