|
| Auto slette linier (Excel 2007) Fra : m_johansson | Vist : 838 gange 72 point Dato : 09-07-10 14:03 |
|
Hej
Jeg skal lave et standard ark.
Jeg importere data fra en txt fil, så den automatisk opdateres når jeg trykker "refresh all"
Herefter får jeg 250.000 linier.
Problemet er, at dem der skal bruge arket skal kunne vælge en kunde. Dette betyder at det måske kun er 500 af linierne der er vedrørende den kunde, men da jeg skal have den del funktioner og gerne vil holde størrelsen på arket nede, så vil jeg gerne slette de linier som jeg ikke skal bruge.
Jeg har lavet en kollonne ved siden af dataen hvor jeg får et # hvis linien vedrører den aktuelle kunde.
Jeg har prøvet at lave en makro der fjerner de linier som jeg ikke skal bruge. ("rekord makro" og så "filter" hvor jeg fjerner #. Markere alle linier der er tilbage og sletter dem. Derefter har jeg kun dem med # tilbage.
Det fungere bare ikke, så nogen der har en ide til hvordan jeg kan fjerne de linier jeg ikke skal bruge og det skal være en makro, så brugerene bare kan vælge den aktuelle kunde og trykke på en knap.
På forhånd tak
| |
| Kommentar Fra : CiviC |
Dato : 09-07-10 23:12 |
|
Hejsa
Du kan bruge denne makro til at fjerne de linier der ikke er markeret med #:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
For Tæl = 1 To 250000 ; Forhøjes, hvis du har mere end 250.000 linier
Linie = Range("A" & Tæl) ;Ændre A til den kollonne du har # stående i
If Linie <> "#" Then
Rows(Tæl).Delete
Linie = Linie - 1
End If
Next
End Sub
Mvh
CiViC
| |
| Kommentar Fra : CiviC |
Dato : 09-07-10 23:18 |
|
Mindre fejl. Den skal se således ud:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
For Tæl = 1 To 20000
Linie = Range("A" & Tæl)
If Linie <> "#" Then
Rows(Tæl).Delete
Tæl = Tæl - 1
End If
Next
End Sub
| |
| Kommentar Fra : CiviC |
Dato : 09-07-10 23:36 |
|
Og så prøver jeg lige én gang til :
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
For Tæl = 1 To 250000 ' Forhøjes ved mere end 250.000 linier
Linie = Range("A" & Tæl) 'Ændre A til den kollonne du har # stående i
If Linie <> "#" Then
Rows(Tæl).Delete
Tæl = Tæl - 1
End If
Next
End Sub
| |
| Kommentar Fra : emhauge |
Dato : 12-07-10 07:21 |
|
Hej
jeg er lige med på en lytter her!! håber det er OK.........
et lille tillægsspørgsmål herfra, hvordan skal man indsætte macro i excel 2007 - jeg er helt nye inden for macro verdenen, men jeg kan da se mange muligheder i det. nogle gode råd til en der gerne vil igang med macro?
/emhauge
| |
| Kommentar Fra : CiviC |
Dato : 12-07-10 10:43 |
|
Hejsa
Først og fremmest, skal du ha' vist fanen "Udvikler". Det gøres ved at trykke på Office-ikonet øverst tilvenstre og derefter trykker du på "Excel indstillinger" nederst til højre. Her "vinger" du af i "Vis fanen udvikler" i 3. linie
Så kan du indsætte ActiveX-objekter som f.eks. knapper. Ved højreklik på f.eks en knap kan du se programkoden. Dette skal gøres i designtilstand som bliver aktiveret når du indsætter ting. Den kan deaktiveres igen ved at trykke på knappen.
Et godt sted at starte når du er nybegynder er her: http://www.ozgrid.com/forum/
Og så er der selvfølgelig altid Kandu.dk
Mvh
CiViC
| |
|
Har du mulighed for at lave den makro til en engelsk version af Excel? Beklager ulejligheden.
| |
| Kommentar Fra : CiviC |
Dato : 12-07-10 21:44 |
|
Saaledes
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
For Tael = 1 To 250000 ' Forhoejes ved mere end 250.000 linier
Linie = Range("A" & Tael) 'Aendre A til den kollonne du har # staaende i
If Linie <> "#" Then
Rows(Tael).Delete
Tael = Tael - 1
End If
Next
End Sub
| |
| Du har følgende muligheder | |
|
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
| |
|
|