• 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.

Alle gevulde cellen selecteren en omzetten naar waarden

Status
Niet open voor verdere reacties.

toverkamp

Gebruiker
Lid geworden
11 sep 2006
Berichten
403
Ik heb ondertussen al een aardig groot bestand gemaakt in excel. Ik ben nu bezig om het allemaal wat kleiner te maken.
Ik heb een werkblad "reactietijden" daarin staan allerlei formules en gegevens. Een deel van deze gegevens zijn nog niet compleet en moeten nog worden aangevuld. Maar een groot gedeelte is al helemaal compleet en staan er als het ware nog als archief tussen. Om gegevens later terug te kijken. Deze gegevens kan ik handmatig wel instellen als waarden via kopieren > plakken speciaal > waarden. Maar ik zou dit graat automatisch zien d.m.v. een vba-code/macro. Dus dat alle gevulde cellen worden geselecteerd en omgezet worden naar waarden.

Ik heb een voorbeeldbestandje bijgevoegd, let niet op de gegevens want die slaan nergens op.
 

Bijlagen

Ik heb ondertussen al een aardig groot bestand gemaakt in excel. Ik ben nu bezig om het allemaal wat kleiner te maken.
Ik heb een werkblad "reactietijden" daarin staan allerlei formules en gegevens. Een deel van deze gegevens zijn nog niet compleet en moeten nog worden aangevuld. Maar een groot gedeelte is al helemaal compleet en staan er als het ware nog als archief tussen. Om gegevens later terug te kijken. Deze gegevens kan ik handmatig wel instellen als waarden via kopieren > plakken speciaal > waarden. Maar ik zou dit graat automatisch zien d.m.v. een vba-code/macro. Dus dat alle gevulde cellen worden geselecteerd en omgezet worden naar waarden.

Ik heb een voorbeeldbestandje bijgevoegd, let niet op de gegevens want die slaan nergens op.

Je weet toch dat je voor "nieuwe" code de macro recorder kan gebruiken, en nadien die gegenereerde code opkuisen.
 
het lukt me ook wel met de hand:
Code:
Sub Macro1()
    Range("A2:E4").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
    Range("A1").Select
End Sub

Maar ik kom dan een probleem tegen bij Rang("A2:E4").Select, want dit moeten alleen de cellen zijn die helemaal gevuld zijn.
 
Doe eens F5, dan speciaal: daar heb je een aantal mogelijkheden. Neem de code op en kuis ze op (wat je niet nodig hebt delete je).
 
Wigi, bedankt voor die handige functie! Maar ik kon niet vinden wat ik zoch, het probleem is dat of de hele kolom geselecteerd word, of àlle gevulde cellen worden geselecteerd.

Ik heb misschien wat anders bedacht, maar ik weet niet of iemand daar een juiste code van maken:o

Ik heb het volgende gedaan:
Met formule =AANTAL(E2:E30)+1 worden het aantal gevulde cellen geteld. Dit is in het voorbeeldbestand 5.Het antwoord 5 staat in cel H13.
Nu zou je dus misschien een code kunnen maken:
range("A2:E(value."H13")").select
die dit gebied selecteerd. Als dat lukt, dan kom ik er waarschijnlijk zelf wel verder uit. Zie bijlage.
 

Bijlagen

range("A2:E" & Range("H13"))

geen Select gebruiken als het niet hoeft!
 
Wigi,

het is me gelukt, maar het moest wel met .select
Code:
Sub Macro4()
    Range("A2:E" & Range("H13")).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
    Range("A1").Select
End Sub

Thnx:thumb:
 
Wigi,

het is me gelukt, maar het moest wel met .select

Neen, het moet niet met Select:

Code:
Sub Macro4()
    Range("A2:E" & Range("H13")).Copy
    Range("A2:E" & Range("H13")).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Range("A1").Select
End Sub

Wigi
 
Hallo wigi,

ik heb de macro in m'n eigen bestand toegepast. En heb hem achter een commandbutton gezet de storing wordt opgelost. De macro staat achter de volgende commandbutton:
Code:
Private Sub storinggereedopslaan_Click()
    storinggereed_module
    RemoveOnCondition "Openstaande storingen", storinggereedordernummer.Text, "r" 
    FillListboxes
[B]    Run "reactietijd_omzetten_waarde"[/B]
End Sub

De macro ziet er nu als volgt uit:
Code:
Sub reactietijd_omzetten_waarde()
    Range("B5:BD" & Range("BL2")).Copy
    Range("B5:BD" & Range("BL2")).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Range("A1").Select
End Sub

Als ik dan een storing gereed meld dan worden een aantal gegevens weggeschreven in het werkblad "reactietijden". Cel BL2 telt het aantal rijen wat geselecteerd moet worden.

Ik krijg echter een foutmelding als ik een storing gereed meldt. Zie bijlage.
 

Bijlagen

  • macro waarden selecteren.JPG
    macro waarden selecteren.JPG
    28,1 KB · Weergaven: 89
Laatst bewerkt:
Je moet de referentie naar werkbladen ook correct maken.
 
ik was er al achter:

Sheets("reactietijden").Select
Range("B5:BD" & Range("BL2")).Copy
Range("B5:BD" & Range("BL2")).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("A1").Select

is nu de juiste code.
 
Vermijd selecteren! Het laat je code langer duren en je scherm flikkeren (al is dat wel te verhelpen):

Code:
With Sheets("reactietijden").Range("B5:BD" & Sheets("reactietijden").Range("BL2"))
.Copy
.PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan