PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAmarkera och tömma tabellmarkera och tömma tabell
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2019-02-03 20:27
 

Hej,

Tacksam för lite hjälp!

Jag har blad1 med en typ databas med ca 10 fält/kolumner. Blad2 innehåller samma fält och är en mall på ca 250 poster. I ett fält markerar jag vilka poster som skall läggas till i blad1. När jag markerar en post fylls ett artikelnummer och en tidstämpel i.

Både blad1 och blad2 är i tabellform.

Med VBA-kod filtrerar jag mallen på de markerade posterna som skall med till blad1, kopierar dem och klistrar in dem i blad1. Tillbaka till blad2 och där släpper jag filtret för att återigen visa alla poster.

Det jag inte får till är att jag i blad2 vill markera och tömma de fält som blivit iflyllda för flytt till blad1. Tabellen startar på rad 4 med rubriker, därför kan jag alltså inte välja hela kolumner.

Hur göra?

cmm

Nytt inlägg
 2019-02-04 08:38
 
Hej hej

Lite lurigt det där med att ta in två stycken markeringar i körande kod. Fick lösa det med en inputbox.

mvh
Christian

Sub CopyPasteDeleteVisibleOnly()

'Sätter nuvarande markering till en range (rng)
Dim rng As Range: Set rng = Selection
'Tar in en ny range från användaren där första markeringen ska klsitras in
Dim rng2 As Range: Set rng2 = Application.InputBox("Select a cell of which to paste the data to", Type:=8)

'Kopierar från första markeringen, klistrar in till andra
rng.Copy rng2
'Tar bort första markeringens syndbara celler. Antagligen denna funktion du hade problem med.
rng.SpecialCells(xlCellTypeVisible).ClearContents

End Sub
Nytt inlägg
 2019-02-04 19:29
 

Hej och tack för snabbt svar!

Min VBA är begränsad men jag tolkar din kod som att du i en variabel sparar och sedan klistrar in i ny markering. Kanske var jag otydlig, ska försöka förtydliga.

I mallen i blad2 markerar jag ett antal poster med en etta, dvs de som skall flyttas till databasen blad1. Samtidigt som ettan fylls i i fält/kolumn A så hämtas till B en timestamp med NU() och C med ett artikelnummer (som användaren fyllt i C2). När jag har är klar och fyllt i ettor så låter jag makrot filtrera på 1 i A, kopiera de filtrerade posterna och klistra in i databasen i blad1. Så långt allt ok.

Sedan vill jag gå tillbaka till blad2 och tömma mallen i kolumner A, B och C så att den är klar för ifyllnad av nästa artikel. Jag behöver alltså markera dessa kolumner från rad 4 (rubrikerna är på rad 3) och deleta innehållet. Dvs ej klistra in nytt innehåll.

Koden jag har gjort hittills är nedan. Det mesta skapat genom inspelning makro.

Mycket tacksam för hjälp, du får säga stopp om det blir too much inga problem.

Sub test2()

'

' test2 Makro

'

    Sheets("opdb").Select

    ActiveSheet.ListObjects("opdb").Range.AutoFilter Field:=2, Criteria1:="1"

    Range("opdbcc").Select

    Range("C7").Activate

    Selection.Copy

    Sheets("combo").Select

    Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

    Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select

    Sheets("opdb").Select

    Application.CutCopyMode = False

    Range("C5").Select

    ActiveSheet.ListObjects("opdb").Range.AutoFilter Field:=2

End Sub

Nytt inlägg
 2019-02-05 17:39
 
 Ändrad av Christian  på 2019-02-05 18:40:07
är det range("opdbcc") som motsvarar området du vill ta bort? isåfall kan du innan du väljer att resetta filtret. skriva sheets("opdb").range("opdbcc").specialcells(xlcelltypevisible).clearcontents
Nytt inlägg
 2019-02-05 19:38
 

Hej,

Nej, det definierade området opdbcc innehåller hela mallen förutom kolumn A där jag markerar en etta för de poster som skall över till blad1. Det är endast kolumn B (timestamp) och kolumn C (artikel) som skall tömmas. Övriga kolumner D- osv är själva mallen som skall finnas kvar för nästa sväng.

cmm

Nytt inlägg
 2019-02-07 08:09
 
Hej igen

Döp då området som ska rensas. Så använder du det namngivna området i koden jag gav dig i mina tidigare svar. Se till att inte få med Rubrikerna när du markerar ditt område...

Så om området döps till "RngToDelete" och ligger på bladet "opdb" ser formeln ut enligt nedan.

sheets("opdb").range("RngToDelete").specialcells(xlcelltypevisible).clearcontents

Kan man deleta alla rader och inte bara de som är framfiltrerade så blir det en kortare kod:


sheets("opdb").range("RngToDelete").clearcontents

Mvh
Christian
Nytt inlägg
 2019-02-10 12:13
 

Hej

Snyggt, funkar perfekt! Stort tack för hjälp!

cmm

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAmarkera och tömma tabellmarkera och tömma tabell

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter