Avatar billede daki Juniormester
29. september 2003 - 14:03 Der er 15 kommentarer og
1 løsning

Oprette en makro

Til et ark med x-antal rækker, skal jeg bruge en makro, som kan følgende:

Hvis der findes noget i kolonne C skal det sættes sammen med det kolonne D, adskilt af mellemrum (C D).
Efterfølgende skal kolonne E og C slettes.
Avatar billede kabbak Professor
29. september 2003 - 14:50 #1
Public Sub SætSammen()
Dim A As Integer
Range("C65536").Select
A = Selection.End(xlUp).Row
For Each c In Range("C1:C" & A)
If c <> "" Then
  c.Offset(0, 1) = c & " " & c.Offset(0, 1)
  c.Offset(0, 2) = ""
  c.Offset(0, 0) = ""
  End If
  Next
  Range("C1").Select
End Sub
Avatar billede kabbak Professor
29. september 2003 - 14:51 #2
Den sletter ikke kolonner, men tømmer cellerne E og C
Avatar billede kabbak Professor
29. september 2003 - 21:11 #3
her er en der klarer 50000 rækker på 4 sek.

jeg har prøvet at lure bak af, med hans hurtige makroer.

Public Sub Kombiner()
Application.ScreenUpdating = False
A = Now()
Dim E As Double
Dim CRække As Variant
Dim DRække As Variant
Dim ERække As Variant
E = Cells(65536, 3).End(xlUp).Row
CRække = Range(Cells(1, 3), Cells(E, 3))
DRække = Range(Cells(1, 4), Cells(E, 4))
ERække = Range(Cells(1, 5), Cells(E, 5))
For B = 1 To UBound(CRække, 1)
If CRække(B, 1) <> "" Then
DRække(B, 1) = CRække(B, 1) & " " & DRække(B, 1)
  CRække(B, 1) = ""
ERække(B, 1) = ""
  End If
Next
Range(Cells(1, 3), Cells(E, 3)) = CRække
Range(Cells(1, 4), Cells(E, 4)) = DRække
Range(Cells(1, 5), Cells(E, 5)) = ERække
Application.ScreenUpdating = True
MsgBox Format(Now() - A, "hh:mm:ss")
End Sub
Avatar billede bak Forsker
29. september 2003 - 21:23 #4
Det ser du da ud til at have luret vældig godt :-)
Hurtig er den ihvertilfælde.......
Avatar billede kabbak Professor
29. september 2003 - 21:31 #5
bak --> har du testet ??, eller kan du se det
Avatar billede bak Forsker
29. september 2003 - 22:25 #6
Jeg har både set og testet.
Jeg har en P350 hz og med 50000 rækker kører den på 3,58 sek.
Rigtig flot og enkelt opbygget :-)
Jeg har prøvet at tune den yderligere, men jeg kan ikke  få den under 3 sek (stabilt).
Avatar billede daki Juniormester
30. september 2003 - 16:09 #7
Jeg får følgende fejl: Compile error Variable not defined.
ved denne linie - Set A = now()

Hvad er der galt ???
Avatar billede bak Forsker
30. september 2003 - 16:11 #8
hvis du har en linie i toppen hvor der står option explicit, så fjern lige den.
Avatar billede bak Forsker
30. september 2003 - 16:16 #9
Der er da forøvrigt ingen Set foran A=Now()
Du kan også indsætte
Dim A as Single
Avatar billede daki Juniormester
01. oktober 2003 - 09:03 #10
Jeg fik fjernet option explicit og nu kører det bare der ud af :-)

Kan I hjælpe mig med at tilpasse nedenstående marco, som skulle slette dubletter, den sletter kun cellen i kolonne A - Den skulle gerne slette hele rækken. (mener det er flemmingdahl som har lavet denne)
I dette tilfælde er antal rækker og forskellig fra gang til gang.

På forhånd tak.
 
Sub SletDobbeltRækker()
Application.ScreenUpdating = False
A = Now()
Dim rRange As Range
Dim DeleteRange As Range
Dim DummyRange As Range
Dim Cell As Range

Set rRange = Range("A1:A5000")
For Each Cell In rRange.Cells
    Set DummyRange = Range(rRange(1, 1), Cell)
        If Application.CountIf(DummyRange, Cell.Value) > 1 Then
          If DeleteRange Is Nothing Then
              Set DeleteRange = Cell
          Else
              Set DeleteRange = Union(DeleteRange, Cell)
          End If
        End If
Next Cell

'  DeleteRange.Delete Shift:=xlShiftUp
    DeleteRange.EntireRow.Delete

Application.ScreenUpdating = True
MsgBox Format(Now() - A, "hh:mm:ss")

Set rRange = Nothing
Set DeleteRange = Nothing
Set DummyRange = Nothing
Set Cell = Nothing
End Sub
Avatar billede bak Forsker
01. oktober 2003 - 09:28 #11
Jeg forstår måske ikke helt spm.
Flemmings makro burde slette hele linier. det burde linien
DeleteRange.EntireRow.Delete
gøre



For at gøre rækkeantallet variabelt
erstat
Set rRange = Range("A1:A5000")
med
Set rRange = Range(Cells(1, 1), Cells(65536, 1).End(xlUp))
Avatar billede daki Juniormester
01. oktober 2003 - 10:08 #12
Det gør den også, det var fordi den stod til DeleteRange.Delete Shift:=xlShiftUp første gang jeg prøvede også rettede jeg linien, men prøvede ikke inden jeg stillede spørgsmålet. (dumme mig)
Avatar billede daki Juniormester
01. oktober 2003 - 10:40 #13
Tak bak, vil du have points ???
Avatar billede bak Forsker
01. oktober 2003 - 10:54 #14
Nej, ellers tak daki. kabbak fortjener alle points :-)
Avatar billede daki Juniormester
01. oktober 2003 - 11:35 #15
Flere points på højkant :-)

Jeg skal bruge en macro, som sletter rækken hvis cellen i kolonne A er tom.
Antal rækker er staigvæk forskellig fra gang til gang.
Avatar billede daki Juniormester
01. oktober 2003 - 12:38 #16
Alle points til kabbak.
Har fundet ud af spørgsmål vedr. sletnng af tomme rækker.
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