Avatar billede densortehingst Seniormester
02. august 2024 - 10:07 Der er 9 kommentarer og
1 løsning

Kan det gøres lettere

Jeg har et regneark, hvor der fra kolonne l (12) står en række ens tal i den og de følgende kolonner.
eks: 271 271 271 271 271 271 271
Jeg blanker nu en eller flere af cellerne så der står:
271 271    271 271    271
jeg har forsøgt at lave en makro, som kan rykke tallene sammen, så der kommer til at stå
271 271 271 271 271
jeg har flere rækker i samme regneark.
jeg har lavet denne makro:

sub sorter
For x = 1 To 20
For y = 12 To 50

    If Worksheets("Klodser").Cells(x, y) = "" Then
        Worksheets("Klodser").Cells(x, y) = Worksheets("Klodser").Cells(x, y + 1)
        Worksheets("Klodser").Cells(x, y + 1) = ""
    End If
Next y
Next x
End Sub

hvis jeg har en række der indeholder:
tal tal blank blank blank tal tal
så skal jeg "bare" køre min makro 3 gange, så er det rykket sammen
Men kan det gøres bedre/ lettere???
Avatar billede madklub Guru
02. august 2024 - 11:18 #1
Markér de celler du vil slette.
Ctrl+venstre klik.
Højre-klik på den sidst markerede cell.
Vælg 'Delete' eller 'Slet'
Vælg 'Shift cells left' eller 'Ryk celler til venstre'

Det synes jeg er meget nemmere.
Avatar billede ebea Ekspert
02. august 2024 - 12:03 #2
Denne her burde gøre det i "et hug".

Sub Flytkolonne()
  Dim LastRow As Long
  LastRow = Columns("I:Z").Find("*", , xlValues, , xlRows, xlPrevious, , , False).Row
  Range("I1:Z" & LastRow).SpecialCells(xlBlanks).Delete xlShiftToLeft
End Sub
Avatar billede densortehingst Seniormester
02. august 2024 - 13:22 #3
madklub:

Hvis du har et regne
ark på 1000 linier, så bliver det en stor opgave og gøre det manuelt på den måde :)
Avatar billede kim1a Ekspert
02. august 2024 - 17:37 #4
Det kan være jeg misforstår dig, men udfordringen med at flytte på kolonner eller rækker er at din makro bør starte baglæns.

Derved skal din makro måske se sådan ud:

For x = 20 To 1 step -1
For y = 50 To 12 step -1

    If Worksheets("Klodser").Cells(x, y) = "" Then
        Worksheets("Klodser").Cells(x, y) = Worksheets("Klodser").Cells(x, y + 1)
        Worksheets("Klodser").Cells(x, y + 1) = ""
    End If
Next y
Next x
End Sub
Avatar billede densortehingst Seniormester
02. august 2024 - 19:32 #5
Kim1a

ja men den flytter alle celler 1 til venstre som den skal.
Problemet er så, at hvis jeg nogen steder har 4 tommer celler på række, så skal jeg køre den 4 gange :)
Jeg må lave en tælle løkke, som tæller indtil den flytter 0 celler :)
Avatar billede ebea Ekspert
02. august 2024 - 20:01 #6
#5 - Og har du testet den som jeg viste i #2 ? 
Den laver jo det du efterspurgte, og uanset antal tomme kolonner i den enkelte række, og antallet af rækker!
Avatar billede densortehingst Seniormester
02. august 2024 - 22:31 #7
EBEA ja det gjorde jeg, men da den havde kørt i 15 min slog jeg excel ned :) Kan ikke gennemskue, hvad den gør og om jeg skal indsætte tal nogen steder ?
Avatar billede ebea Ekspert
02. august 2024 - 23:37 #8
#7 - jeg går ud fra, at udgangspunktet i dit spørgsmål, var det du viste dit tal eksempel.

Så den fjerner mellemrum (tomme celler i rækkerne), med start i kolonne i.
Og når makroen er kørt, ser du dine tal i rækkerne, flyttet imellem kolonnerne, så der ikke er tomme celler mellem dine tal (som du efterspurgte).

Så hvad du mener med, at den kører 15 min. hvor du så skal stoppe Excel, må du forklare lidt bedre.
Avatar billede jens48 Ekspert
03. august 2024 - 00:24 #9
Ebeas makro fra #2 virker upåklageligt. Men hvis du vil gøre det uden makro, kan det lade sig gøre ved at mærke hele området op, vælge Gå til Tomme, og så slette de valgte tomme celler ved at rykke til venstre.
Avatar billede densortehingst Seniormester
03. august 2024 - 02:42 #10
jens48
nu har jeg testet den og den virker faktisk fint. Har ingen ide om, hvorfor den i eftermiddags fik excel til at køre 100% i 15 min ??
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