ChekBoxes1 gegevens naar andere werkmap wegschrijven

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

Ik wil de gegevens uit mijn checkBoxes1 wegschrijven naar een andere werkmap
dit wil niet lukken, de rest wegschrijven gaat wel maar wie kan mij op weg helpen:

Zodra de checkBox1 aangevinkt staat moet hij de gegevens uit J14 pakken en anders niks, nu A1 ingesteld die is leeg
Code:
Sub macro1()
Dim i As Long
Dim wb As Workbook

Application.ScreenUpdating = False

    On Error Resume Next
    Set wb = Workbooks("C:\Users\Henk\Desktop\Wegschrijf test ZNP\DataBase.xlsx")
    On Error GoTo 0
    
    If wb Is Nothing Then
        Set wb = Workbooks.Open("C:\Users\Henk\Desktop\Wegschrijf test ZNP\DataBase.xlsx")
    Else
    End If
    
    Windows("Form 004 Klachten.xlsm").Activate
    Sheets("KlachtenForm").Select
    
Workbooks("Form 004 Klachten.xlsm").Sheets("KlachtenForm").Activate
i = Workbooks("DataBase.xlsx").Sheets("DataBase").Range("A" & Rows.Count).End(xlUp).Row

Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 1) = Sheets("KlachtenForm").Range("I11").Value       'Registratienummer
Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 2) = Sheets("KlachtenForm").Range("I8").Value        'Datum
Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 3) = Sheets("KlachtenForm").Range("I9").Value        'Buitendienst
Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 4) = Sheets("KlachtenForm").Range("I10").Value       'Binnendienst
Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 5) = Sheets("KlachtenForm").Range("D13").Value       'Deb.nummer
Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 6) = Sheets("KlachtenForm").Range("D14").Value       'Klantnaam
Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 7) = Sheets("KlachtenForm").Range("D15").Value       'Plaats
Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 8) = Sheets("KlachtenForm").Range("D16").Value       'Contactpersoon klant
Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 9) = Sheets("KlachtenForm").Range("I10").Value       'Telefoonnummer

[COLOR="#FF0000"]If CheckBoxes1 = True Then
Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 10) = Sheets("KlachtenForm").Range("J14").Value      'Binnendienst gegevens
Else
Workbooks("DataBase.xlsx").Sheets("DataBase").Cells(i + 1, 10) = Sheets("KlachtenForm").Range("A1").Value       'Geen gegevens
End If[/COLOR]

Workbooks("DataBase.xlsx").Close SaveChanges:=True

Application.ScreenUpdating = True
End Sub

Alvast bedankt voor de hulp

HWV
 
En die checkbox heet echt CheckBoxes1 ? Dat moet je dan bewust zo hebben gedaan.
Daarnaast doe je niets met het workbook object en gebruik je overbodig veel tekst. Ik denk dat dit voldoende is:
Code:
Sub macro1()
    Dim i As Long
    Dim wb As Workbook
    Dim sh As Worksheet
    
    Application.ScreenUpdating = False
    On Error Resume Next
    Set wb = Workbooks("C:\Users\Henk\Desktop\Wegschrijf test ZNP\DataBase.xlsx")
    On Error GoTo 0
    
    If wb Is Nothing Then
        Set wb = Workbooks.Open("C:\Users\Henk\Desktop\Wegschrijf test ZNP\DataBase.xlsx")
    End If
    Set sh = wb.Sheets("klachtenForm")
    
    With wb.Sheets("DataBase")
        i = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
        .Cells(i, 1) = sh.Range("I11")                                  'Registratienummer
        .Cells(i, 2) = sh.Range("I8")                                   'Datum
        .Cells(i, 3) = sh.Range("I9")                                   'Buitendienst
        .Cells(i, 4) = sh.Range("I10")                                  'Binnendienst
        .Cells(i, 5) = sh.Range("D13")                                  'Deb.nummer
        .Cells(i, 6) = sh.Range("D14")                                  'Klantnaam
        .Cells(i, 7) = sh.Range("D15")                                  'Plaats
        .Cells(i, 8) = sh.Range("D16")                                  'Contactpersoon klant
        .Cells(i, 9) = sh.Range("I10")                                  'Telefoonnummer
        .Cells(i, 10) = IIf(CheckBox1, sh.Range("J14"), sh.Range("A1")) 'Binnendienst gegevens
        .Close SaveChanges:=True
    End With

    Application.ScreenUpdating = True
End Sub

Maar het gaat dus ook even om de juiste naam van je CheckBox.
 
Dat doe je dan zo:
If ActiveSheet.Shapes("Selectievakje 1").OLEFormat.Object.Value = 1 Then
 
Of met:

Code:
   if  Blad1.CheckBoxes("check Box 5").Value=1 then Msgbox Blad1.[J14]
 
Laatst bewerkt:
Registratienummer megeven

Beste,

bedankt voor de hulp.
Maar van het één kom je bij het ander.
Kan ik mijn registratienummer automatisch opvolgend van nummer vanuit mijn bestand Database krijgen.
Als de beginwaarde 20150001 is en elke keer als ik een nieuwe klacht opslaat dat hij automatisch het registratienummer vanuit de database haalt + 1 dus dan 20150002

Bekijk bijlage Form 004 Klachten.xlsm
Bekijk bijlage DataBase.xlsx

Zo haal ik het laatste nummer op en maak er één onder opvolgend, en maak er vaste waarde van.

Code:
ActiveSheet.Range("A1").End(xlDown).Offset(1, 0).Activate
ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False

Hoe zorg ik er nu voor dat hij het nu plaats op mijn Form 004 Klachten cel I11.

Alvast weer dank.

HWV
 
Niet de mooiste code

Beste,

het is niet de mooiste code maar het doet wat ik bedoel.

Code:
ActiveSheet.Range("A1").End(xlDown).Offset(1, 0).Activate
ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Form 004 Klachten.xlsm").Activate
    Range("I11:J11").Select
    ActiveSheet.Paste

Groet HWV
 
Je kan ook deze eens proberen.
Code:
Workbooks("Form 004 Klachten.xlsm").Sheets("Klachtenform").Range("I11:J11").Value = WorksheetFunction.Max(Columns(1)) + 1
 
Het volgende doet zich nu voor!

Bedankt voor de inzet!

Ik loop nu wel tegen het volgende aan en zou graag advies willen hebben hoe ik dit moet aanpakken.
Het is een klachten registratie die ingevuld wordt en bij opslaan wordt weggeschreven in een database.
Enkel er moet nog wat gevuld worden door onze inkoop.
Dus ik moet de gegevens terug kunnen schrijven.

- moet ik dan gaan werken met een userform
- kan ik dit ook met dit formulier doen,
- ik doe met het wegschrijven wel een kopieblad zonder macro`s wegschrijven.

Zoals gezegd ik zou graag eens met jullie wille kijken wat er mogelijk is.

Alvast bedankt voor de genomen moeite.
 
Stap verder met een userform

Beste,

Ik heb een userform gemaakt als klachtenformulier.
Ik heb er een listbox ingezet en vraagt de gegevens op uit de database werkt goed.
Wat me niet lukt zodra ik op een regel drukt dat dan de gegevens uit de listbox (database) gevuld worden in mijn userform.

Kan iemand mij op weg helpen, ik kom er uit

HWV

Bijalge:
Bekijk bijlage ZNP 004 Klachten.xlsm
Bekijk bijlage DataBase.xlsx
 
Code:
Private Sub ListBox1_Click()
fRow = Application.Match(CDbl(ListBox1.List(ListBox1.ListIndex, 0)), Workbooks("Database.xlsx").Sheets("Database").Columns(1), 0) 'rijnummer registratienummer database
sn = Workbooks("Database.xlsx").Sheets("Database").Cells(fRow, 1).Resize(, 60).Value 'array met alle waarden uit database gevonden in rij fRow
AdresNummer = sn(1, 5) ' 5 = plaats in array = kolomnummer database
KlantNaam = sn(1, 6) ' 6 = plaats in array = kolomnummer database
Adres = sn(1, 7) ' 7 = plaats in array = kolomnummer database
Plaats = sn(1, 8) ' 8 = plaats in array = kolomnummer database
Contactpersoon = sn(1, 9) ' 9 = plaats in array = kolomnummer database
Telefoonnummer = sn(1, 10) ' 10 = plaats in array = kolomnummer database
End Sub

Hier een aanzet, de overige benodigde velden mag je verder zelf aanvullen.
 
Werkt als een trein

Beste Warme bakkertje,

Bedankt werkt goed!
Ik krijg het aardig gevuld en werkt goed, ik loop nog wel tegen een probleem aan.

Als je het formulier opent dan zie je dat de scrollbar van het frame niet bovenaan begin!
Is dit in te stellen dat het userform opent maar dan het frame bovenaan

Bekijk bijlage ZNP 004 Klachten.xlsm

Alvast weer bedankt!

HWV
 
Tabvolgorde

Met in het frame2 de tabstop op False te hebben gezet gaat het goed :D

Maar ik krijg er geen volgorde in , als ik de tab volgorde wil instellen lukt jet niet deze vast tet zetten komt dit door de frames die ik heb gebruikt.
Maar hoe kan ik dan wel een volgorde instellen.

HWV
 
Een Frame is een container object. Ieder object in een Frame heeft z'n eigen Tabindex. Daarmee kan je de tab volgorde instellen.
 
Gevonden

Bedankt gevonden, een stuk duidelijker en weer wat bij geleerd edmoor.

Misschien iemand een idee voor het volgende waar ik tegen aanloop:

Code:
Private Sub ListBox1_Click()

fRow = Application.Match(CDbl(ListBox1.List(ListBox1.ListIndex, 0)), Workbooks("GST1- Eenheden1.xls").Sheets("Artikelen").Columns(1), 0) 'rijnummer registratienummer database
sn = Workbooks("GST1- Eenheden1.xls").Sheets("Artikelen").Cells(fRow, 1).Resize(, 100).Value 'array met alle waarden uit database gevonden in rij fRow

TXT_Artikelnummer = sn(1, 1)
Omschrijving1 = sn(1, 7)
Verpakt = sn(1, 4)

End Sub

Code van warme bakkertje werkt goed enkel bij mijn artikelen niet goed.
In de listbox werkt het wel enkel als ik het wil overzetten naar mijn userform met bovenstaande gaat het verkeerd

Dit komt dat de artikelnummers niet standaard het "standaard" formaat hebben maar is opgebouwd als tekst.
Deze data wordt elke nacht geüpdatet, kan ik het zo veranderen dat hij ook zoekt in tekst bestanden.

HWV
 
Code:
fRow = Application.Match(ListBox1.List(ListBox1.ListIndex, 0), Workbooks("GST1- Eenheden1.xls").Sheets("Artikelen").Columns(1), 0) 'rijnummer registratienummer database

Geef anders eens een voorbeeld van zo'n artikelnummer.
 
Laatst bewerkt:
Geweldig

Bedankt Warme Bakkertje,

Het is weer het juiste ik zie dat je
Code:
CDbl
heb weggehaald
en nu werkt het wel, enorm bedankt voor de hulp die ik gekregen heb.
Heb het weekend stappen gemaakt met het formulier en werkt goed.

HWV
 
:thumb: en nog succ6 verder met je formulier.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan