Help!

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

Hulp bij posten

Recente topics

Auteur Topic: VBA datum zoeken en range kopieren en plakken.  (gelezen 8161 keer)

0 leden en 1 gast bekijken dit topic.

Offline Moo

  • Ambassadeur
  • *****
  • Berichten: 1.165
  • Geslacht: Man
  • Waar het hart van vol is, loopt de tekst van over.
VBA datum zoeken en range kopieren en plakken.
« Gepost op: 27 februari 2011, 10:14:42 »
Ik wil de waarde uit een range B58:F58 kopiëren, de datum van vandaag zoeken in range A4:CR35 en er naast de gevonden datum de waardes plakken.
Ik heb een macro gevonden en deze wat aangepast.
Het werkt, maar is van een amateur.
Ik wil nog graag deze kunnen uitvoeren vanaf een ander werkblad, in hetzelfde document, die geeft nu een error 400, limiet beperking.
Wie geeft de pro-versie van deze code:
Sub VindDagVanVandaag()
    Dim VindDatum As Date
    Dim Rng As Range
           VindDatum = CLng(Date)
      With Sheets("Blad2").Range("A4:cr35")
           Sheets("Blad2").Range("A58:F58").Select
            Selection.copy
      Set Rng = .Find(What:=VindDatum, _
                        After:=.Cells(.Cells.Count), _
                        LookIn:=xlFormulas, _
                        LookAt:=xlWhole, _
                        SearchOrder:=xlByRows, _
                        SearchDirection:=xlNext, _
                        MatchCase:=False)
       If Not Rng Is Nothing Then
           Application.Goto Rng, True
           ActiveSheet.Paste
       Else
            MsgBox "Niets gevonden"
       End If
    End With
End Sub
ASRock P43 Pro/USB3, Intel 2 Quad cpu Q9550 2.83GHz, 2840 MHz, NVIDIA GeForce GTS 450, Win7 oem 64bit pre NL, Realtek, HD:1tb, 4 Gb DDR3, KIS, Firefox, Ms-Outlook 2007, Telenet

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: VBA datum zoeken en range kopieren en plakken.
« Reactie #1 Gepost op: 27 februari 2011, 18:07:33 »
Moo, ik vrees dat je voorbeeldbijlage een beetje summier is waardoor een gericht antwoord geven een beetje giswerk wordt (lijkt volgens mij nauwelijks op het origineel). Maar begin anders 'ns met het weghalen van die code uit de ThisWorkbook-module en plaats die in een nieuw aangemaakte standaard-module. Die kan je namelijk wel aanspreken vanuit elke sheet. Ik gok dat daar je error schuil gaat.

Groet, Leo
______________________________

Groet, Leo

Offline Moo

  • Ambassadeur
  • *****
  • Berichten: 1.165
  • Geslacht: Man
  • Waar het hart van vol is, loopt de tekst van over.
Re: VBA datum zoeken en range kopieren en plakken.
« Reactie #2 Gepost op: 27 februari 2011, 21:34:35 »
Hoi Leo, het is al wat ik heb  :-[. Ik probeer daarmee het ziekenhuisdocument, op het excel-board, automatisch te maken.
Het bestaat uit een werkblad dat op een kalender lijkt en één waar per dag vijf berekeningen naar die kalender moeten geschreven worden. Dus, ik zoek naar de datum van vandaag en plaats er de vijf gegevens er naast met een macro. Exact zoals op het voorbeeldje en er is verder geen andere code voor nodig. Als u het wat beter kan maken, want het draait niet lekker?

Hieronder het document, dat al is aangepast, maar zeker nog niet perfect is.

 

 
ASRock P43 Pro/USB3, Intel 2 Quad cpu Q9550 2.83GHz, 2840 MHz, NVIDIA GeForce GTS 450, Win7 oem 64bit pre NL, Realtek, HD:1tb, 4 Gb DDR3, KIS, Firefox, Ms-Outlook 2007, Telenet

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: VBA datum zoeken en range kopieren en plakken.
« Reactie #3 Gepost op: 27 februari 2011, 22:11:39 »
'k ben d'r nog niet helemaal zeker van of ik je helemaal begrijp, maar volgens mij zit ik hiermee in de goede richting...
Sub zoeken()
Dim zoek As Date
Dim c As Range

    With Worksheets("telling")
        zoek = .Range("A58").Value
        Set c = .Range("A4:CR35").Find(zoek, LookIn:=xlFormulas, LookAt:=xlWhole)
        If Not c Is Nothing Then
            c.Offset(, 1).Resize(, 5).Value = .Range("B58:F58").Value
        End If
    End With

End Sub

Groet, Leo
______________________________

Groet, Leo

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.190
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: VBA datum zoeken en range kopieren en plakken.
« Reactie #4 Gepost op: 27 februari 2011, 22:35:14 »
Hallo Moo,

mits kleine aanpassing werkt je oude code wel:
Sub gegevens_overzetten()
    Dim VindDatum As Date
    Dim Rng As Range
           VindDatum = CLng(Date)
     Sheets("Telling").Select
      With Sheets("Telling").Range("A4:cr35")
           Sheets("Telling").Range("B58:F58").Select
            Selection.Copy
      Set Rng = .Find(What:=VindDatum, _
                        LookIn:=xlFormulas, _
                        LookAt:=xlWhole)
       If Not Rng Is Nothing Then
           Application.Goto Rng.Offset(0, 1), True
           ActiveSheet.Paste
       Else
            MsgBox "Niets gevonden"
       End If
    End With
End Sub

Wel moet je dollar-tekens zetten in de range-aanduidingen:
=AANTALARG(Wachtkamer!$A:$A)-AANTAL.ALS(Wachtkamer!$A:$A;"b")

EDIT: maar er gaat natuurlijk niks boven de veel kortere en betere code van RedHead (waar je bovendien geen $-tekens moet plaatsen in de range-aanduidingen).  ;D

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

 


www.combell.com