• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Formule automatisch verwijderen uit cel

Status
Niet open voor verdere reacties.

Meerstad

Nieuwe gebruiker
Lid geworden
22 mei 2019
Berichten
4
Wie kan mij helpen. Ik ben bezig met het volgende in een Excelbestand.

Sheet 1 = een kruisjeslijst. Hier wordt aangevinkt welke documenten opgeleverd gaan worden aan het einde van het project.
In sheet 2 wil ik dit schematisch in een procesje weergeven. Echter, krijg ik dit nu niet mooi onderelkaar, als er bijv in de kruisjeslijst cel A1 is aangevinkt en daarna pas weer A5. In mijn sheet 2 krijg ik dan dus 3 rijen er tussen.
Nu zou ik die graag automatisch willen verwijderen. Ik heb een VBA code die automatisch 'blanks' verwijdert als je er op klinkt. Alleen in sheet 2 gebruik ik de IF functie om aan te geven dat als kruisje op sheet 1 is aangevinkt, de bij behorende tekst moet worden getoond op sheet 2.

Met de VBA code krijg ik dus de 3 lege zellen tussen A1 en A5 niet weg, omdat de cel de IF formule blijft tonen. Ik heb al geprobeerd de waarde van de cel op 'hidden' te zetten en dan vervolgens de sheet te beveiligingen. Echter blijft de VBA code dan de inhoud van de cel zien als de formule.

Is er een VBA code die ik kan toepassen zodat bij een lege cel, want geen kruisje gezet in sheet 1, de formule wordt verwijderd? (Ik weet dat dit kan via CTRL G - formules, maar ik wil dit graag automatisch, of met een verwijsknop op sheet 2 doen zodat dit 'monkey proof' wordt en ook voor mijn collega's gebruikt kan worden.
 
je kan bij de aanvang van je macro die formules dus toevoegen.
Daarna vervang je de formules door hun waarden.
Daarna verwijder je de lege rijen.
Klaar.
Met een voorbeeldbestandje (zonder vertrouwelijke info) had ik direct de goeie code erbij kunnen zetten.
Nu moet ik een gok doen.

Ik doe dus als tussenstap naar werkblad A en B. Om dat vervolgens op de juiste plek op Process overview te krijgen.
 

Bijlagen

  • Voorbeeld.xlsm
    36,5 KB · Weergaven: 24
Heel erg bedankt! Ik heb eea aangepast en het werkt perfect! Precies zoals ik in m'n hoofd had. Nogmaals erg bedankt!
 
ik zou het zo doen, zelfs zonder die tussenstap naar je tabbladen A en B
Code:
Sub MijnKruisjes()
    Dim A, B
    Set A = Sheets("A").Range("A5:A100")                             'uitvoerbereik in sheet A (waarom niet rechtstreeks naar Procesoverview ???)
    Set B = Sheets("B").Range("A5:A100")

    With Sheets("Kruisjeslijst").UsedRange                           'je lijst met kruisjes
        .AutoFilter                                                  'eventuele filter uitzetten
        .AutoFilter 2, "x"                                           'filteren op de 2e kolom = A (daar staat nu niets in)
        A.ClearContents                                              'uitvoerbereik wissen
        .Offset(1).Resize(, 1).Copy A.Cells(1)                       'koprij niet meekopieren, de rest van de gefilterde rijen wel

        .AutoFilter
        .AutoFilter 3, "x"
        B.ClearContents
        .Offset(1).Resize(, 1).Copy B.Cells(1)

        .AutoFilter                                                  'filter terug uitzetten
    End With
End Sub


Mag ik je toch nog een vraag stellen? Aangaande bovenstaande wil ik nu graag óok de data uit kruisjeslijst in een ander tabblad onder elkaar willen hebben. Zodat je daar de status kunt bijhouden of eventuele acties.
Met bovesntaande code werkt het perfect om het mooi in een process overzicht te krijgen. Echter, krijg ik het niet voorelkaar om alles ónderelkaar te krijgen vanuit meerdere kolommen uit de kruisjeslijst (dus kolom B,C,D uit "Kruisjeslijst" naar kolom A in "actielijst") Als ik ga werken met =!KruisjeslijstB5 dan krijg ik vervolgens C en D daar niet mooi onder. Heb je daar nog een tip voor?

Ik heb nu dit:

Sub Statusreport()
Dim E
Set E = Sheets("E").Range("A1:A25")

With Sheets("Kruisjeslijst").UsedRange
.AutoFilter
.AutoFilter 3, "x"
E.ClearContents
.Offset(1).Resize(, 1).Copy E.Cells(1)

Set E = Sheets("E").Range("A26:A50")

.AutoFilter
.AutoFilter 4, "x"
E.ClearContents
.Offset(1).Resize(, 1).Copy E.Cells(1)

Set E = Sheets("E").Range("A51:A75")

.AutoFilter
.AutoFilter 5, "x"
E.ClearContents
.Offset(1).Resize(, 1).Copy E.Cells(1)

Set E = Sheets("E").Range("A76:A100")

.AutoFilter
.AutoFilter 6, "x"
E.ClearContents
.Offset(1).Resize(, 1).Copy E.Cells(1)

.AutoFilter
End With
End Sub

---> dit werkt prima. Alleen in Sheet E krijg ik nu dus lege rijen, omdat niet alle 25 waardes ingevuld worden. Hoe krijg ik een autofilter er nog in, in deze formule om te zorgen dat uiteindelijk in Sheet E alles mooi onderelkaar staat?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan