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

Command button gebruiken

Status
Niet open voor verdere reacties.

Paul-RT

Giga Honourable Senior Member †
Lid geworden
6 dec 2003
Berichten
10.886
In een excel document wil ik een command button gebruiken.
Als ik er op klik moet er een waarde van cel A24 uit een ander tabblad worden gekopieerd.
Daarna moet er een ander document worden geopend.

Zodra dit document opent, moet de gekopieerde waarde worden geplakt in een bepaalde cel.

Voor de kopieren actie heb ik het volgende geprobeerd, maar daar krijg ik een foutmelding op.
Code:
Private Sub CommandButton1_Click()
  With ActiveWorkbook.Sheets("Locatie gegevens")
    Copy.Value ("A24")
  End With
End Sub

Het document wat daarna moet worden geopend is:
F:\Microsoft Office 2003\Excel\Bedrijfs Formulieren\RECR\Klant gegevens\REC Test klant.xls


Hoe krijg ik dit stukje werkend?
 
Welke foutboodschap krijg je precies.
Kan het te maken hebben met de With, volgens mij moet dan alles wat waar mee te maken heeft beginnen met een punt.
Bij jou begint het met een Copy.Value ("A24")

Het open van een andere excel bestand kan je volgens mij gewoon doen met
Code:
Workbooks.Open Filename:="F:\Microsoft Office 2003\Excel\Bedrijfs Formulieren\RECR\Klant gegevens\REC Test klant.xls"

Succes

Wim
 
Ok, ik de punt ervoor geplaatst en krijg een foutmelding.

Code:
Private Sub Test_Click()
  With ActiveWorkbook.Sheets("Locatie gegevens")
    .Copy.Value ("A24")
  End With
End Sub

Fout 424 tijdens uitvoering.
Object vereist

Gekke is ook, dat er een 2e document opent, met daarin 1 tabblad.
Als ik nu een cel selecteer, en dan plakken klik, dan gebeurd er niets.
Dus de copy functie werkt niet.

Ik ga even stoeien met die aut. openen actie. Wellicht kan ik daar iets mee doen en heeft de copy geen zin meer.
Be right back.....
 
Ok, ik de punt ervoor geplaatst en krijg een foutmelding.

Code:
Private Sub Test_Click()
  With ActiveWorkbook.Sheets("Locatie gegevens")
    .Copy.Value ("A24")
  End With
End Sub

Fout 424 tijdens uitvoering.
Object vereist

Gekke is ook, dat er een 2e document opent, met daarin 1 tabblad.
Als ik nu een cel selecteer, en dan plakken klik, dan gebeurd er niets.
Dus de copy functie werkt niet.

Ik ga even stoeien met die aut. openen actie. Wellicht kan ik daar iets mee doen en heeft de copy geen zin meer.
Be right back.....

Als ik even brutaal mag zijn.:cool:
Het is gebruikelijk om eerst het bestand te openen en vervolgens de gegevens van het ene bestand naar het andere bestand te verplaatsen/kopiëren.

Onderstaande code opent dus eerst het bestand en kopieert de waarde van cel A24 naar cel A1 van het zojuist geopende bestand. Het bestand kan natuurlijk verbeterd worden, maar het is nu een simpel concept.

Code:
Private Sub CommandButton1_Click()
Workbooks.Open Filename:= "F:\Microsoft Office 2003\Excel\Bedrijfs Formulieren\RECR\Klant gegevens\REC Test klant.xls"

ThisWorkbook.Sheets("Locatie gegevens").Range("A24").Copy Destination:=Workbooks(Workbooks.Count).Worksheets(1).Range("A1")

End Sub

Met vriendelijke groet,


Roncancio
 
@ Roncanio, ja die is ook grappig.

Ik heb het uiteindelijk iets anders opgelost.
De command button opent een 2e document.
Dat document haalt de gegevens op uit A23 en verwerkt deze daarna.
Gaat ook goed.

De waarde van A23 wijzigd met regelmaat; namelijk telkens ald ik het betreffende document open ;)

In het document met de cel A23 zit nu de button:
Code:
Private Sub CommandButton1_Click()
  Workbooks.Open Filename:="F:\Microsoft Office 2003\Excel\Bedrijfs Formulieren\RECR\Klant gegevens\REC Test klant.xls"
End Sub


In het document "test klant" zit de formule:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

  If ThisWorkbook.Saved = True Then Exit Sub

    Application.DisplayAlerts = False
    ThisWorkbook.SaveAs Filename:=Sheets("Klanten-History").Range("A3").Value
End Sub

En in de cel waar de waarde van A23 terecht moet komen de formule:
Code:
=('[KlantenRECR.xls]Locatie gegevens'!$A$24)



En zo is er weer een stukje klanten bestand / facturering ge-automatisseerd.

Wat er nu zoal gebeurd?
Ik open het klanten overzicht.
Er staat al een nieuw klantnummer met een jaartal, maand en volgnummer.
Deze plaatst zich op de eerstvolgende lege regel. De active ce 9waar ik begin met typen) 1 cel naar rechts.
Ik vul de gegevens van de klant in.
Dan klik ik op button1.
Een nieuw klanten histoyu opent zich.
Daar verschijnt direct het laatst gebruikte klantnummer en ook direct alle gegevens.
Onmiddelijk worden deze gegevens opgeslagen.
Ook vormt zich direct een factuur nummer, (klantnummer met volgnummer).

Ik kan nu een opmerking plaatsen, vinkje zetten voor factuur betaald, of niet.
Dan 1 klik op "Maak factuur".
Een nieuwe lege factuur opent zich.
Daarin direct automatisch het klantnummer, een factuur nummer en alle klant gegevens.

:thumb::thumb::thumb::thumb::thumb: Helemaal goud !
(whoei, dit pakket wordt geld waard :D)
 
Laatst bewerkt:
Dan kan de vraag op opgelost zetten omdat je je vraag zelf hebt beantwoord.:thumb:

Met vriendelijke groet,


Roncancio
 
Ik kan nu een opmerking plaatsen, vinkje zetten voor factuur betaald, of niet.
Dan 1 klik op "Maak factuur".
Een nieuwe lege factuur opent zich.
Daarin direct automatisch het klantnummer, een factuur nummer en alle klant gegevens.

:thumb::thumb::thumb::thumb::thumb: Helemaal goud !
(whoei, dit pakket wordt geld waard :D)

Zoiets doe ik in Access... :eek::cool:

Alhoewel ik veel en veel liever Excel dan Access.
 
Case re-opened.

Sja, ik heb zo goed als nooit met Acces gewerkt.
Ben al blij dat het meeste gaat lukken in excel.
Die kan wat mij betreft genoeg.
En als ik acces zou doen, moet ik die 2 weer combineren met elkaar :confused:

Maar goed. Automatisch opslaan komt in de verkeerde folder terecht.
Ik krijg (als ik de juiste folder-locatie probeer toe te voegen) de melding "Lijstscheidingsteken verwacht".
Wat gaat er nog verkeerd?
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

  If ThisWorkbook.Saved = True Then Exit Sub

    Application.DisplayAlerts = False
    ThisWorkbook.SaveAs ("Filename:=Sheets("Klanten-History").("F:\Microsoft Office 2003\Excel\Bedrijfs Formulieren\RECR\Klant gegevens")
    .Range("A3").Value
End Sub

In de folder F:\Microsoft Office 2003\Excel\Bedrijfs Formulieren\RECR\Klant gegevens
Moet dus een file naam komen met de waarde uit cel A3.xls
(Waarde die elders wordt gegenereerd is bijvoorbeeld REC0809022)
 
Laatst bewerkt:
Code:
    Const sPad As String = "F:\Microsoft Office 2003\Excel\Bedrijfs Formulieren\RECR\Klant gegevens"
    
    Dim sFileName As String
    sFileName = ThisWorkbook.Sheets("Klanten-History").Range("A3").Value
    
    ThisWorkbook.SaveAs Filename:=sPad & "\" & sFileName

Wigi
 
Wigi, wederom geweldig ! :thumb:
't wordt tijd dat ik zelf een curses vba ga doen denk ik.....

(case closed)
 
Laatst bewerkt:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If Activeworkbook.Saved = False Then Activeworkbook.SaveAs "F:\Microsoft Office 2003\Excel\Bedrijfs Formulieren\RECR\Klant gegevens\" & sheets("Klanten-History").Range.[A3]
End Sub
Ook jouw Excel heeft een F1-toets (zie SaveAs; voorbeeld)
 
Doet die eigenlijk hetzelfde als de code van Wigi?
ik zat (met een code als snb) al te stoeien, maar kreeg het niet voor elkaar.
De help-functie kwam met engelse termen en niet de oplossing die ik zocht.
(office 2003)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan