Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Waarde ipv formule kopieren  (gelezen 3777 keer)

0 leden en 1 gast bekijken dit topic.

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Waarde ipv formule kopieren
« Gepost op: 05 maart 2018, 12:05:03 »
Hallo helpers en oplossers,

In mijn stukje code:

If Me.TxtP.Value = "X" Then
    ws.Cells(iRow, 1).EntireRow.Copy
    Y = Sheets("Pin").Cells(Cells.Rows.Count, 1).End(xlUp).Row
    Sheets("Pin").Range("A" & Y + 1).PasteSpecial Paste:=xlPasteAll
End If

kopieert deze geheel naar wens een rij wanneer deze aan de voorwaarde voldoet. Wat niet helemaal mijn bedoeling is, is dat hij de formules mee kopieert terwijl mijin wens is dat de waardes van die rij worden overgenomen. Ik denk dat er iets anders moet staan achter "Paste:=" doe ik echter "xlPasteValues" dan krijg ik meest de "0" en de datum wordt naar het interne excel format omgezet.

Wie kan mij het licht laten zien ;)
Op tabblad Pin, kun je zien wat ik bedoel
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Waarde ipv formule kopieren
« Reactie #1 Gepost op: 05 maart 2018, 13:07:00 »
Hallo Johan,

Met "xlPasteValues" ben je alvast op de goede weg.
Zet er nog eens een instructie bij en kijk dan eens :
With Sheets("Pin").Range("A" & Y + 1)
    .PasteSpecial Paste:=xlPasteAllUsingSourceTheme
    .PasteSpecial Paste:=xlPasteValues
End With

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: Waarde ipv formule kopieren
« Reactie #2 Gepost op: 05 maart 2018, 13:15:10 »
Hallo Pitufo,

Dank voor je reactie.

Het werkt niet helemaal, alle cellen die formules bevatten worden nu niet met een zichtbare nul gekopieerd, maar is wel 0 en wordt weergegeven als een "€ -" datum doet hij met deze code wel goed... hij kopieert nu dus schijnbaar wel de opmaak, ook de hyperlink in kolom A wordt nu netjes mee genomen.

Johan

Edit: wanneer ik kopieer met opname van een macro dan geeft hij Paste:=xlPasteValuesAndNumberFormats aan, echter wanneer ik die regel in mijn script stop dan blijft er weer niets van over...
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Waarde ipv formule kopieren
« Reactie #3 Gepost op: 05 maart 2018, 20:00:55 »
Hey Johan,

Ik had dat advies gewoon "uit de losse pols" geschreven, en heb pas nu je bestand kunnen downloaden om eens te testen, en heb toch de indruk dat het werkt.
Weet dus waarschijnlijk niet precies wat je wil bereiken. Wil je daarom een bestandje bezorgen met een rij die via de macro wordt toegevoegd en een rij met het manueel ingevulde resultaat zoals je het wil zien.
Ik zal er wel weer pas morgen kunnen naar kijken.

"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.279
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Waarde ipv formule kopieren
« Reactie #4 Gepost op: 05 maart 2018, 21:43:37 »
Nog een poging?

If Me.TxtP.Value = "X" Then
    ws.Cells(iRow, 1).EntireRow.Copy
    Y = Sheets("Pin").Cells(Cells.Rows.Count, 1).End(xlUp).Row
    Sheets("Pin").Range("A" & Y + 1).PasteSpecial Paste:=xlPasteValues
    Sheets("Pin").Range("A" & Y + 1).PasteSpecial Paste:=xlPasteFormats
End If
______________________________

Groet, Leo

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: Waarde ipv formule kopieren
« Reactie #5 Gepost op: 06 maart 2018, 09:26:08 »
Heren,

Mijn grote zwijgen is geenzins een teken dat ik niets doe, echter heb ik even geen tijd om hier vandaag in te duiken. beide gegeven opties kopieren wel maar kopieren dus ook de formules van blad(2018) naar blad(Pin). de volgende optie doet het ook niet omdat hij waarschijnlijk vastloopt op de pastespecial toevoeging..

If Me.TxtP.Value = "X" Then
    Y = Sheets("Pin").Cells(Cells.Rows.Count, 1).End(xlUp).Row + 1
    ws.Cells(iRow, 1).EntireRow.Copy Destination:=Sheets("Pin").Range("A" & Y), PasteSpecial:=(xlPasteValuesAndNumberFormats)
End IF

Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Waarde ipv formule kopieren
« Reactie #6 Gepost op: 06 maart 2018, 09:37:22 »
Nu zal ik je toch moeten tegenspreken, Johan.
Het is namelijk mijn absolute overtuiging dat zowel mijn oplossing als die van RedHead hetzelfde doen, met name waarden én opmaak kopiëren, maar in geen geval formules.
Overweeg anders misschien toch eens mijn verzoek uit reactie 3.
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: Waarde ipv formule kopieren
« Reactie #7 Gepost op: 06 maart 2018, 09:56:27 »
Hoi Pitufo,

Ik weet niet goed wat ik anders zou moeten uploaden dan het bestand in #1, dat is een waarheidsgetrouwe copy van een origineel bestand. Wanneer ik mijn formuliertje invul en bij de P een "X" invul dan moet de regel worden gekopieerd naar blad(Pin) op waardes, bij mij krijg ik echt de formules retour vanuit de te kopieren tabelrij op blad(2018).

Dus wat ik hier wellicht niet begrijp, snap ik nog niet helemaal, maar zoals gezegd, ik heb vandaag geen tijd om er even verder in te duiken.

Dank jullie in elk geval voor de aandacht, hopelijk kom ik tijdens het sturen nog op een ander invalshoek uit ;)
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.279
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Waarde ipv formule kopieren
« Reactie #8 Gepost op: 06 maart 2018, 10:58:18 »
Johan, zou je 'ns een screendump van een ingevuld formulier willen plaatsen? Ik heb namelijk géén idee wat je daar allemaal moet invoeren.
Daarnaast lijkt het of ik 2 textboxen mis op je formulier. In elk geval die van de datum (Me.TxtDatum). Wat voor veld moet dat zijn? Of waar geef je de datum op?

Overigens is het plaatsen van een "X" op een formulier niet de juiste wijze. Althans, ik gok dat het óf een X is of leeg. In dat geval heb je een boolean veld te pakken. Maak dan gebruik van een checkbox (werkt ook veel sneller dan een X in moeten typen). Of als je slechts 1 optie van diverse opties mag kiezen, maak er dan radiobuttons van.
______________________________

Groet, Leo

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.279
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Waarde ipv formule kopieren
« Reactie #9 Gepost op: 06 maart 2018, 11:41:39 »
Buiten mijn bericht hierboven, nog een reactie om 'ns uit te proberen...

Sub ff()
    With Sheets("pin")
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, 38) = Sheets("2018").ListObjects("factuur").ListRows(ActiveCell.Row - 1).Range.Value
    End With
End Sub
Als het voor je werkt, kan je 't integreren in je eigen werkstuk.
______________________________

Groet, Leo

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: Waarde ipv formule kopieren
« Reactie #10 Gepost op: 06 maart 2018, 18:50:21 »
Overigens is het plaatsen van een "X" op een formulier niet de juiste wijze. Althans, ik gok dat het óf een X is of leeg. In dat geval heb je een boolean veld te pakken. Maak dan gebruik van een checkbox (werkt ook veel sneller dan een X in moeten typen). Of als je slechts 1 optie van diverse opties mag kiezen, maak er dan radiobuttons van.

Daar heb je een punt en heb daar in het origineel al wel aan gedacht maar nog niet omgebouwd.

Qua datum (me.txtdatum en me.txtboekdtm) dat zijn de 2 DTPicker's die je met een datum ziet staan
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: Waarde ipv formule kopieren
« Reactie #11 Gepost op: 06 maart 2018, 19:00:28 »
Buiten mijn bericht hierboven, nog een reactie om 'ns uit te proberen...

Sub ff()
    With Sheets("pin")
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, 38) = Sheets("2018").ListObjects("factuur").ListRows(ActiveCell.Row - 1).Range.Value
    End With
End Sub
Als het voor je werkt, kan je 't integreren in je eigen werkstuk.

Dit werkt al een stuk beter, vreemd is wel dat hij niet de regel neemt die ik net met het formulier heb ingevoerd, maar kijkt naar de regelnummer (rijnummer) er eentje terug gaat en die regel dan kopieert... verder is het dan inderdaad zonder formules..
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.279
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Waarde ipv formule kopieren
« Reactie #12 Gepost op: 06 maart 2018, 19:50:51 »
vreemd is wel dat hij niet de regel neemt die ik net met het formulier heb ingevoerd, maar kijkt naar de regelnummer (rijnummer) er eentje terug gaat en die regel dan kopieert

Ha ha ha... Die was ook alleen maar een "stand-alone" voorbeeld. Het was de bedoeling dat je op een regel ging staan in je tabel en dat je dan de code zou laten lopen. De regel met de actieve cel zou dan worden overgezet.
Wat je dus moet doen om je proces af te ronden is 1) het wegschrijven van je gegevens in de sheet "2018" en daarna die kopieerslag te maken. Ik heb er een "-1" in staan omdat anders de foute regel van de tabel wordt gekozen.

Overigens kan ik je bijlage niet goed testen. Je Datepickers werken niet bij mij. Vandaar dat ik die velden in je formulier miste. ;)
______________________________

Groet, Leo

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: Waarde ipv formule kopieren
« Reactie #13 Gepost op: 06 maart 2018, 20:15:29 »
Okay ;)

Het is opgelost :P

Allereerst had ik bedacht dat de kopieer actie ook binnen de code:
With Application
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With
kon vallen, maar daar zat dus al een deel van het probleem, vele waardes werden als 0 gekopieerd, nadat ik de kopieeractie na het aanzetten van de calculatieautomatic heb gezet doet hij de waardes correct overnemen...

ik gebruik nu deze code:
If Me.TxtP.Value = "X" Then
    With Sheets("pin")
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, 38) = Sheets("2018").ListObjects("factuur").ListRows(ws.Cells(iRow, 1)).Range.Value
    End With
End If
En dat werkt prima

Ik wil iedereen weer hartelijk bedanken voor het op het goede spoor brengen van mijn verlangens ;)

Johan.
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

 


www.combell.com