Avatar billede daki Juniormester
19. november 2002 - 08:37 Der er 14 kommentarer og
1 løsning

Kan det gøres mere simpel

Jeg har lavet denne macro, kan det gøres mere simpelt.
Jeg skal lave samme macro for 3 celler mere.

Sub HenteData250()
'
'
    Sheets("PC250-Indtræk").Select
    Range("B29").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B75").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A3").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B121").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A4").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B167").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A5").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B213").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A6").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B259").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A7").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B305").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A8").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B351").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A9").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B397").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A10").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B443").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A11").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B489").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A12").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B535").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A13").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("PC250-Indtræk").Select
    Range("B581").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A14").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub
19. november 2002 - 08:43 #1
Er det en værdi eller tekst du skal flytte ??? så kan du lave disse linier om:
    Sheets("PC250-Indtræk").Select
    Range("B29").Select
    Selection.Copy
    Sheets("Data").Select
    Range("A2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
til
Sheets("Data").Range("A2").Value = Sheets("PC250-Indtræk").Range("B29").Value
19. november 2002 - 08:43 #2
det var et svar
Avatar billede daki Juniormester
19. november 2002 - 08:54 #3
Det er tal, som skal kopieres fra en fane til en anden.
Og det skal gøres med 1 linie for hver værdi, som skal kopieres.

Jeg har 15 faner, hvor der skal kopiers 8 værdier. De 8 værdier er placeret i samme celle i hver fane.
19. november 2002 - 08:59 #4
Så laver du jo bare søg og erstat på "Data" når du har kørt den første gang...
Avatar billede daki Juniormester
19. november 2002 - 09:05 #5
Tak Flemming.

Jeg tror jeg vil lave dit svar, som 8 * 14 linier for hver fane så kan jeg have et bedre overblik over det.

/dan
19. november 2002 - 09:07 #6
vent lige.... jeg skal lige kigge i noget jeg næsten havde glemt.. øjeblik
19. november 2002 - 09:15 #7
Public Sub Tralala()
    Dim sNames(1 To 8) As String
    Dim lNumberOfStartCells As Long
    Dim lCount As Long

    sNames(1) = "Ark1"
    sNames(2) = "Ark2"
    'OSV....til 8 styk
   
    For lCount = 1 To UBound(sNames)
        With Sheets(sNames(lCount))
            .Range("A2").Value = Sheets("PC250-Indtræk").Range("B29").Value
            .Range("A3").Value = Sheets("PC250-Indtræk").Range("B75").Value
            ' OSV alle 14 linier eller flere
        End With
    Next lCount
End Sub
Avatar billede daki Juniormester
19. november 2002 - 09:29 #8
Jeg tror ikke jeg kan bruge dit sidste forslag :-((

Problemstilling:
15 Faner - PC250-indtræk, PC200-, PC210-, PC220-, osv.
I eks. PC250-indtræk celle b29, b75, osv (+46). kopieres til Data A2-A14. celle b15, b61 (+46) kopieres til B2-B14.
Dette skal gøres med endnu 6 værdier - celler springer altid med 46.
Når PC250 er 'færdig' skal næste fanes værdier placeres fra række 15-27 osv.
Og alle celler er altid ens - dvs. B29 og B15 skal hentes i alle 15 faner.

Håber det er bedre forklaret ??
19. november 2002 - 09:37 #9
Kolonne A startes i række 29
Kolonne B startes i række 15
Hvor starter kolonne C,D,E,F,G,H ?
19. november 2002 - 09:39 #10
Hvis du giver mig det fulde billede af et ark - så har jeg lige en finte til dig.
19. november 2002 - 09:53 #11
Skift selv tallene ud for kolonne C-H

Public Sub Tralala()
    Dim sNames(1 To 15) As String
    Dim lNumberOfStartCells As Long
    Dim lRows As Long
    Dim lColumns As Long
    Dim lNextRow As Long

    sNames(1) = "Ark1"
    sNames(2) = "Ark2"
    'OSV....til 15 styk
   
    For lColumns = 1 To 8
        ' A-kolonnen
        lNextRow = Sheets("Data").Range("A65536").End(xlUp).Row
        For lRows = 29 To 581 Step 46
            lNextRow = lNextRow + 1
            Sheets("Data").Range("A" & CStr(lNextRow)).Value = _
                Sheets(sNames(lCount)).Range("B" & CStr(lRows)).Value
        Next lRows
       
        ' B-kolonnen
        lNextRow = Sheets("Data").Range("B65536").End(xlUp).Row
        For lRows = 15 To 567 Step 46
            lNextRow = lNextRow + 1
            Sheets("Data").Range("B" & CStr(lNextRow)).Value = _
                Sheets(sNames(lCount)).Range("B" & CStr(lRows)).Value
        Next lRows
       
        ' C-kolonnen
        lNextRow = Sheets("Data").Range("C65536").End(xlUp).Row
        For lRows = 15 To 567 Step 46
            lNextRow = lNextRow + 1
            Sheets("Data").Range("C" & CStr(lNextRow)).Value = _
                Sheets(sNames(lCount)).Range("C" & CStr(lRows)).Value
        Next lRows
       
        ' D-kolonnen
        lNextRow = Sheets("Data").Range("D65536").End(xlUp).Row
        For lRows = 15 To 567 Step 46
            lNextRow = lNextRow + 1
            Sheets("Data").Range("D" & CStr(lNextRow)).Value = _
                Sheets(sNames(lCount)).Range("D" & CStr(lRows)).Value
        Next lRows
       
        ' E-kolonnen
        lNextRow = Sheets("Data").Range("E65536").End(xlUp).Row
        For lRows = 15 To 567 Step 46
            lNextRow = lNextRow + 1
            Sheets("Data").Range("E" & CStr(lNextRow)).Value = _
                Sheets(sNames(lCount)).Range("E" & CStr(lRows)).Value
        Next lRows
       
        ' F-kolonnen
        lNextRow = Sheets("Data").Range("F65536").End(xlUp).Row
        For lRows = 15 To 567 Step 46
            lNextRow = lNextRow + 1
            Sheets("Data").Range("F" & CStr(lNextRow)).Value = _
                Sheets(sNames(lCount)).Range("F" & CStr(lRows)).Value
        Next lRows
       
        ' G-kolonnen
        lNextRow = Sheets("Data").Range("G65536").End(xlUp).Row
        For lRows = 15 To 567 Step 46
            lNextRow = lNextRow + 1
            Sheets("Data").Range("G" & CStr(lNextRow)).Value = _
                Sheets(sNames(lCount)).Range("G" & CStr(lRows)).Value
        Next lRows
       
        ' H-kolonnen
        lNextRow = Sheets("Data").Range("H65536").End(xlUp).Row
        For lRows = 15 To 567 Step 46
            lNextRow = lNextRow + 1
            Sheets("Data").Range("H" & CStr(lNextRow)).Value = _
                Sheets(sNames(lCount)).Range("H" & CStr(lRows)).Value
        Next lRows
    Next lColumns
End Sub
Avatar billede daki Juniormester
19. november 2002 - 10:10 #12
Vil du gerne se arket ?

Fanen PC250-indtræk data hentet fra *.txt filer.
Jeg kopier så de tal, som jeg skal bruge over i fanen Data. Og henter derefter værdierne over i de rette skemaer.
19. november 2002 - 10:17 #13
ja, det er måske nemmere... fd@win-consult.com
Avatar billede daki Juniormester
19. november 2002 - 10:27 #14
Arket hermed sendt !!!!
19. november 2002 - 10:32 #15
sNames(1) = "PC250-Indtræk"
sNames(2) = "PC200"
sNames(3) = "PC210"
osv. for alle dine ark, som skal over på data.
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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