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

openen ander sheet

Status
Niet open voor verdere reacties.

bowlingman

Gebruiker
Lid geworden
17 okt 2007
Berichten
433
Hallo,
Ik heb een file opgeslagen (als test) als map1.xlsb
In map2.xslb heb ik een cmb geplaatst.
Is het nu mogelijk om achter die cmb een vba-code te plaatsen, dat er voor zorgt dat map1.xlsb op de achtergrond wordt geopend.

Grtjs.
Armand
 
Met cmb bedoel je een Keuzelijst (Combobox)? Want dan snap ik je vraag niet, want een keuzelijst kun je meerdere keren aanklikken, en dan wil je elke keer opnieuw dat bestand openen? Of is het een knop?
 
Daarnaast heb je het over een sheet waar je kennelijk een workbook bedoelt.
 
Ja het is eigenlijk een workbook en ik dacht cmb voor een button staat.
Het is dus een button

Grtjs.
Armand
 
Daar heb je dan ook weer twee smaken van.

Kijk eens naar Getobject.
 
Hallo,
Ik heb uit mijn workbook "AperoLiga" de sheet "ledenlijst" gehaald en in dezelfde map opgeslagen als workbook "Ledenlijst".
Deze laatste open ik nu met de volgende code (uit mijn workbook "Aperoliga")
Code:
Sub OpenWorkbook()
    Application.WindowState = xlMinimized
    frmSpelers.Show
    Workbooks.Open Filename:="c:\users\wouzy\Documents\Test Apero\Ledenlijst.xlsb"
    Application.WindowState = xlMinimized
End Sub
En dat lukt al perfect.
Nu schreef ik in "AperoLiga" de gegevens van de leden weg met de volgende code
Code:
Private Sub cmbOpslaan_Click()
Application.ScreenUpdating = False
[COLOR="#FF0000"]    Set c = Sheets("Ledenlijst").Columns(1).Find(what:=txtiD.Value, lookat:=xlWhole)
            c.Offset(0, 1) = Me("txtNaam").Text
            c.Offset(0, 8) = Me("txtGemiddelde").Text
            c.Offset(0, 9) = Me("cboTeams").Text[/COLOR]
            
    Set c = Sheets("LigaData").Cells(Rows.Count, 5).End(xlUp).Offset(1)
            c.Offset() = Me("txtiD").Text
            c.Offset(0, 1) = Me("txtNaam").Text
            c.Offset(0, 2) = Me("txtGemiddelde").Text
            c.Offset(0, 3) = Me("cboTeams").Text
    
    If OptionButtonMan = True Then c.Offset(0, 4) = "M"
    If OptionButtonVrouw = True Then c.Offset(0, 4) = "V"
        
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.TextBox Then
            ctrl.Text = vbNullString
        End If
        If TypeOf ctrl Is MSForms.ComboBox Then
            ctrl.Text = vbNullString
        End If
        If TypeOf ctrl Is MSForms.OptionButton Then
            ctrl.Value = False
        End If
    Next
Sheets("Start").Select
Application.ScreenUpdating = True
End Sub
Hoe kan ik deze code (in het rood) wijzigen, zodat die gegevens naar de ledenijst in het workbook "Ledenlijst" worden weggeschreven.

Grtjs.
Armand
 
zonder voorbeeldbestand, zo?
Code:
Private Sub cmbOpslaan_Click()
Application.ScreenUpdating = False

With getobject("c:\users\wouzy\Documents\Test Apero\Ledenlijst.xlsb")
	Set c = .Sheets("Ledenlijst").Columns(1).Find(what:=txtiD.Value,  lookat:=xlWhole)
            c.Offset(0, 1) = Me("txtNaam").Text
            c.Offset(0, 8) = Me("txtGemiddelde").Text
            c.Offset(0, 9) = Me("cboTeams").Text
.close 0
End With

en
Code:
Sub OpenWorkbook()
    Application.WindowState = xlMinimized
    frmSpelers.Show
    
End Sub
 
Hallo AD
Ik krijg het maar niet aan de praat, dus heb ik vereenvoudigde files gemaakt.
Het is de bedoeling dat wanneer je op de button in AperoTest2 klikt, dat LedenlijstTest2 wordt geopend en dat dan beide workbooks worden geminimaliseerd en het frm wordt geopend, zodoende dat alleen het frm op mijn beeldscherm staat.
Als je dan de gegevens in het linkervak invult deze worden weggeschreven naar LedenlijstTest2 en als je op sluiten klikt LedenlijstTest2 wordt gesorteerd en beide workbooks terug gemaximaliseerd.
De bedoeling hiervan is om mijn workbook AperoLiga op die manier uiteen te halen. Zodat de workbook minder zwaar wordt.

Grtjs.
Armand
 

Bijlagen

Doe het eens zo:
Code:
Private Sub CommandButton1_Click()
    Workbooks.Open (ThisWorkbook.Path & "\LedenLijstTest2.xlsb")
    Application.Visible = False
    frmSpelers.Show
End Sub

En in de Sluiten knop van het formulier:
Code:
Application.Visible = True
 
Ik heb nu een Workbook "Info Leden", met daarin de ledenlijst.
Als ik dit opstart, wordt het Workbook "Apero Seizoen 2020-2021.xlsb" (met daarin de sheet "LigaData")ook automatisch geopend en wordt het Userform om de leden in te brengen automatisch geladen en de ingevoerde gegevens worden ook correct weggeschreven naar de ledenlijst.
Code:
Private Sub cmbOpslaan_Click()
Application.ScreenUpdating = False
    Set c = Sheets("Ledenlijst").Columns(1).Find(what:=txtiD.Value, lookat:=xlWhole) 
            c.Offset(0, 1) = Me("txtNaam").Text
            c.Offset(0, 8) = Me("txtGemiddelde").Text
            c.Offset(0, 9) = Me("cboTeams").Text
            
  
   [COLOR="#FF0000"] Set c = Sheets("LigaData").Cells(Rows.Count, 5).End(xlUp).Offset(1)
            c.Offset() = Me("txtiD").Text
            c.Offset(0, 1) = Me("txtNaam").Text
            c.Offset(0, 2) = Me("txtGemiddelde").Text
            c.Offset(0, 3) = Me("cboTeams").Text
    
    If OptionButtonMan = True Then c.Offset(0, 4) = "M"
    If OptionButtonVrouw = True Then c.Offset(0, 4) = "V"[/COLOR]
  
   
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.TextBox Then
            ctrl.Text = vbNullString
        End If
        If TypeOf ctrl Is MSForms.ComboBox Then
            ctrl.Text = vbNullString
        End If
        If TypeOf ctrl Is MSForms.OptionButton Then
            ctrl.Value = False
        End If
    Next
Sheets("Ledenlijst").Select
Application.ScreenUpdating = True
End Sub
Nu wil ik de gegevens die in de code in het rood staan ook wegschrijven en dat lukt me niet.
Hoe moet ik dat stukje code daarvoor aanpassen.

Grtjs.
Armand
 
Waarom probeer je niet eerst eens om jouw vraag in #8 werkend te krijgen.
Om nu alles om te gooien maakt het alleen maar onduidelijker.
 
Dat is opgelost, zoals ik meld. Maar ik weet nu niet hoe ik de code moet aanpassen om de data ook weg te schrijven naar de sheet "LigaData" in het workbook "Apero Liga 2020-2021.xlsb
 
Zie nergens dat het is opgelost.
Zoals ik het lees staat de Userform nu in het bestand "Info Leden" en niet meer in het bestand ""Apero Liga 2020-2021.xlsb ?
En anders maar een voorbeeldbestand.
 
Hier dan het voorbeeld.
Ik heb alle gevoelige gegevens alsook overbodige sheets verwijderd en het Usersform verplaats naar Info Leden. Welk automatisch opstart als je "Info Leden opent
 

Bijlagen

Probeer dit eens. (beide bestanden staan in dezelfde map)
Code:
Private Sub cmbOpslaan_Click()
Application.ScreenUpdating = False
    Set c = Sheets("Ledenlijst").Columns(1).Find(what:=txtiD.Value, lookat:=xlWhole)
            c.Offset(0, 1) = Me("txtNaam").Text
            c.Offset(0, 8) = CDbl(Me("txtGemiddelde"))
            c.Offset(0, 9) = Me("cboTeams").Text
            
      With GetObject(ThisWorkbook.Path & "\Apero Seizoen 2020-2021 Voorbeeld.xlsb")
      Set c = .Sheets("LigaData").Cells(Rows.Count, 5).End(xlUp).Offset(1)
            c.Offset() = Me("txtiD").Text
            c.Offset(0, 1) = Me("txtNaam").Text
            c.Offset(0, 2) = CDbl(Me("txtGemiddelde"))
            c.Offset(0, 3) = Me("cboTeams").Text
    
         If OptionButtonMan = True Then c.Offset(0, 4) = "M"
         If OptionButtonVrouw = True Then c.Offset(0, 4) = "V"
      End With
   
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.TextBox Then
            ctrl.Text = vbNullString
        End If
        If TypeOf ctrl Is MSForms.ComboBox Then
            ctrl.Text = vbNullString
        End If
        If TypeOf ctrl Is MSForms.OptionButton Then
            ctrl.Value = False
        End If
    Next
Sheets("Ledenlijst").Select
Application.ScreenUpdating = True
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan