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

Ingevulde cellen kopieren

Status
Niet open voor verdere reacties.

Bart Smith

Gebruiker
Lid geworden
9 okt 2008
Berichten
16
Hallo experts,

Graag even uw hulp bij volgend probleem:
In bijlage een blad uit de inventaris. Iedereen die iets uit het magazijn neemt moet de rode letters invullen. Wanneer de knop actualiseren ingedrukt wordt, worden de ingevulde cellen gewist en wordt de stock aangepast. Nu had ik graag een detailblad waarin de waarden uit de kolommen B, C en D automatisch gekopieerd worden.
Kan iemand mij hierbij helpen, ik slaag er nl niet in om enkel de ingevulde cellen te kopieren.(Macro 2)
Thx!
 

Bijlagen

Hier is de code van Macro2

Code:
Sub Macro2()
'
' Macro2 Macro
'
    [B4:D11].Copy
    Sheets("Detail").Select
    Range("A2").Select
    ActiveSheet.Paste
    Range("F7").Select
    Columns("A:A").EntireColumn.AutoFit
    Columns("A:A").ColumnWidth = 21.57
    Range("E15").Select
End Sub
 
Ik weet niet wat er fout is gegaan maar bij het uploaden geef hij aan ongeldig bestand.

Je code van Macro1 kan ook korter.

Code:
[F4].Value = [F4] - [D4]
[C4,D4].ClearContents

[f5].Value = [f5] - [d5]
[c5,d5].ClearContents

[F6].Value = [F6] - [F6]
[C6,D6].ClearContents

De rest mag je zelf aan passen.

Suc6
 
Ik weet niet wat er fout is gegaan maar bij het uploaden geef hij aan ongeldig bestand.

Je code van Macro1 kan ook korter.

Code:
[F4].Value = [F4] - [D4]
[C4,D4].ClearContents

[f5].Value = [f5] - [d5]
[c5,d5].ClearContents

[F6].Value = [F6] - [F6]
[C6,D6].ClearContents

Dit lijkt me nog nodeloos lang ;)

Code:
    Range("D4:D6").Copy
    Range("F4:F6").PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract
    
    Range("C4:D6").ClearContents

Wigi
 
Hier is de code van Macro2

Code:
Sub Macro2()
'
' Macro2 Macro
'
    [B4:D11].Copy
    Sheets("Detail").Select
    Range("A2").Select
    ActiveSheet.Paste
    Range("F7").Select
    Columns("A:A").EntireColumn.AutoFit
    Columns("A:A").ColumnWidth = 21.57
    Range("E15").Select
End Sub

De volgende code werkt inderdaad, maar telkens wordt de hele reeks (B4:D11) gekopieerd naar het detailblad en ook de opmaak.
Het is de bedoeling dat enkel de ingevulde gegevens van de cellen gekopieerd worden, zonder opmaak.
Elk inventarisbestand moet een jaar dienst doen en zoals het nu is krijgen we ellenlange detaillijsten.
 
Bart Smith,

Het is de bedoeling dat enkel de ingevulde gegevens van de cellen gekopieerd worden, zonder opmaak

Dan moet je het berijk aanpassen
Code:
 [C4:D11].Copy
 
@Hoornvan
Omdat alleen de waardes gekopieerd moeten worden moet er volgens mij nog een regelcode bij.
Code:
 [C4:D11].Copy
 Range("F4").PasteSpecial (xlPasteValues)
De celbereik F4 is overigens een voorbeeld van waar het resultaat van het kopieren moet worden geplaatst.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Bart Smith,

Ik heb dit ervan gemaakt.

Code:
Sub MacroCopy()
Application.ScreenUpdating = False
    [C4:D11].Copy
    Sheets("Detail").Select
    [B2].Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    [F7].Select
    Columns("A:A").EntireColumn.AutoFit
    Columns("A:A").ColumnWidth = 21.57
    [E15].Select
    Sheets("Blauwe jas").Select
    MacroLeegBlad
    [A12].Select
 Application.ScreenUpdating = True
End Sub
 
@ Hoornvan

Als ik uw laatste code gebruik, krijg ik de melding
"sub of function is niet gedefinieerd"?
 
Bart Smith,

Ik heb alleen dit stukje er tussen gezet, bij mij werkt het goed.

Code:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Dat heb ik met de Macro recorder gedaan voor de code.
 
Dit is de code die er bij mij instaat.
Code:
' De macro is opgemaakt op 20/10/2008 door Een ander.
Sub MacroLeegBlad()
Application.ScreenUpdating = False
    [F4].Value = [F4] - [D4]
    [F5].Value = [F5] - [D5]
    [F6].Value = [F6] - [D6]
    [F7].Value = [F7] - [D7]
    [F8].Value = [F8] - [D8]
    [F9].Value = [F9] - [D9]
    [F10].Value = [F10] - [D10]
    [F11].Value = [F11] - [D11]
    [C4,C5,C6,C7,C8,C9,C10,C11,D4,D5,D6,D7,D8,D9,D10,D11].ClearContents
Application.ScreenUpdating = True
End Sub
Sub MacroCopy()
Application.ScreenUpdating = False
    [C4:D11].Copy
    Sheets("Detail").Select
    [B2].Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    [F7].Select
    Columns("A:A").EntireColumn.AutoFit
    Columns("A:A").ColumnWidth = 21.57
    [E15].Select
    Sheets("Blauwe jas").Select
    MacroLeegBlad
    [A12].Select
 Application.ScreenUpdating = True
End Sub
De regel
Code:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Is nu
Code:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Hier werkt het goed.
 
Ik heb even de code iets korter gemaakt.

Code:
' De macro is opgemaakt op 20/10/2008 door Een ander.
Sub MacroLeegBlad()
Dim rBereik As Range
    Application.ScreenUpdating = False
    For Each rBereik In Sheets("Blauwe jas").Range("F4:F11")
        rBereik.Value = rBereik.Value - rBereik.Offset(0, -2).Value
    Next
    Sheets("Blauwe jas").Range("C4:D11").ClearContents
    Application.ScreenUpdating = True
End Sub

Sub MacroCopy()
    Application.ScreenUpdating = False
    Worksheets("Blauwe jas").Range("C4:D11").Copy
    Sheets("Detail").Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Sheets("Detail").Columns("A:A").EntireColumn.AutoFit
    Sheets("Detail").Columns("A:A").ColumnWidth = 21.57
    MacroLeegBlad
    Application.ScreenUpdating = True
End Sub

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Nog 2 probleempjes.

De aangepaste code van Roncancio, heeft mij al een heel eind op weg geholpen maar heb nog 2 probleemjes;:o
1. Ik heb het bereik uitgebreid naar B4 : D11 om ook de artikels meet op het detailblad te zien. wanneer ik nu de macrocopy uitvoer, word dit zelfde bereik gekopieerd.
Is het niet mogelijk een stukje code toe te voegen zodanig dat enkel die rijen gekopieerd worden waar iets ingevuld staat in C4 : D11.

BV als iemand een jas maat 50 en 58 neemt enkel deze 2 rijen gekopieerd worden?

2. Op het detailblad worden de gegevens telkens overschreven, hoe plak ik die op een nieuwe rij?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan