Command button verstoppen in excell na het opslaan van sheet.

Status
Niet open voor verdere reacties.
wat houdt die trim functie eigenlijk in? neemt die bijv. de spatie's in?
 
Hoewel de vraag alleen maar aan heren is gericht....:mad:
Lijkt mij 2 maal 'initialfilename' overbodig:

Code:
With Application.FileDialog(msoFileDialogSaveAs)
'    .InitialFileName = "c:\users\x\documents\"
    .FilterIndex = 1
    .InitialFileName = FILENAME1
    .Title = "Opslaan als"
    .Show
    .Execute
  End With
en ....
Code:
c00 = Join(Array([P8], [Q8], [I9], [I13], [I29], [I30]), "-")
 
Laatst bewerkt:
@snb,

Die heb ik ergens gemist om die eruit te halen (.initialfilename).
De 'en' methode stond er al zonder de haken.
 
Daarom heb ik de evaluate haken getoond; omdat die er nog niet stonden en dat in mijn ogen leesbaarder is (want ik houd al helemaal niet van afbreekstreepjes in VBA, net zomin als van dubbele punten in 1 regel).
 
Zoals ik al zei, die afbreekstreepjes is een kwestie van smaak m.b.t. schrijfwijze.
In een andere post maakte ik deze routine:
Code:
Sub Keuzerondjes_Klikken()
    Dim Kleur As Long
    
    Select Case Application.Caller
        Case "Jongen":      Kleur = 14853632
        Case "Onbekend":    Kleur = 9158777
        Case "Meisje":      Kleur = 12495092
    End Select
    ActiveSheet.Shapes("MultiFrame 1").Fill.ForeColor.RGB = Kleur
End Sub

Op die manier vind ik het gebruik van de : prima.
Anders ook niet.
 
Laatst bewerkt:
Beste,

Allereerst wil ik me excuses aanbieden aan de dames op deze forum!

en bedankt voor de vele reactie's.

ik heb in verschillende poging geprobeerd de code aan te passen dat ik in sheet chart sticker ook de buttons weg krijgt maar ik blijf maar op foutieve code terug komen. de afkorting van jullie heb ik er nog niet tussen verwerkt dat wou ik straks proberen omdat ik dus matig de code dan veranderd en het niet meer begrijpt. dus stukje bij stukje. de trim functie geprobeerd maar dat lukt nog niet echt blijft ook fout aangeven, bedankt voor de site die ga ik nogmaals een paar keer goed door lezen.

misschien kunnen jullie mij uitleggen wat ik hier de fout in maak.

Code:
Sub SAVE_AS()
Dim trim
Dim FILENAME1 As String
Dim sh As Worksheet
FILENAME1 = Join(Array(Range("P8"), Range("Q8"), Range("I9"), Range("I13"), Range("I29"), Range("I30")), "-")
Sheets(Array("DECLARATION", "CHART STICKER")).Copy
ActiveWindow.Activate
With Application.FileDialog(msoFileDialogSaveAs)
    .InitialFileName = "c:\users\x\documents\"
    .FilterIndex = 1
    .InitialFileName = FILENAME1
    .Title = "Opslaan als"
    .Show
    .Execute
  End With
With ActiveWorkbook
 For Each sh In .Sheets
   If LCase(sh.Name) = "declaration" Then
      sh.Shapes.Range(Array("Button 1", "Button 2", "Button 3", "Button 4", "Button 5")).Delete
   End If
For Each next sh
 If LCase(sh.Name) = "chart sticker" Then
      sh.Shapes.Range(Array("Button 1", "Button 3")).Delete
      End If
      
End With

End Sub
 
Er staat bijvoorbeeld: For Each next sh
Daar klopt dus geen jota van.
Daarnaast gebruik je een For die niet wordt afgesloten door een Next
 
klopt dat zag ik en dat heb ik ook weer veranderd naar :

Code:
With ActiveWorkbook
 For Each sh In .Sheets
   If LCase(sh.Name) = "declaration" Then
      sh.Shapes.Range(Array("Button 1", "Button 2", "Button 3", "Button 4", "Button 5")).Delete
   End If
Next sh
 If LCase(sh.Name) = "chart sticker" Then
      sh.Shapes.Range(Array("Button 1", "Button 3")).Delete
      End If
      
End With
maar dan loopt ie weer vast op If LCase(sh.Name) = "chart sticker" Then
 
Dat ziet er niet uit en zo zal het ook niet bedoeld zijn. Heb je wel de de naam van het blad DECLARATION zodanig aangepast dat er geen spatie meer achter staat? Probeer het eens zo:
Code:
With ActiveWorkbook
    For Each sh In .Sheets
        Select Case LCase(sh.Name)
            Case "declaration"
                sh.Shapes.Range(Array("Button 1", "Button 2", "Button 3", "Button 4", "Button 5")).Delete
            Case "chart sticker"
                sh.Shapes.Range(Array("Button 1", "Button 3")).Delete
        End Select
    Next sh
End With
 
Laatst bewerkt:
de code heb ik geprobeerd maar blijft een fout geven op :
Code:
sh.Shapes.Range(Array("Button 1", "Button 3")).Delete

zit het probleem misschien in dat ik het niet onder een activeX-knop heb zitten.?
 
Wen je ook aan, wanneer je zegt een foutmelding te krijgen, de melding er bij te vertellen. Foutmeldingen zijn er niet om de gebruiker te pesten maar om aan te geven wat er mis is.
 
Fout 1004

het item met de opgegeven naam is niet gevonden.


vindt het raar maar er is niet veranderd aan de naam geen spatie's enz.
 
nu heb ik de fout 1004 opgelost omdat de button 1 moest button 2 zijn. dus dat is opgelost maar nu komt er een andere naar voren.

fout -2147024809 (80070057) tijdens uitvoering:
de opgegeven waarde valt buiten het bereik.
 
Upload het bestand eens met hoever je bent.
Kan Ed er eens naar kijken ipv gokken.
Ik ben momenteel met iets anders bezig.
 
nu heb ik de fout 1004 opgelost omdat de button 1 moest button 2 zijn. dus dat is opgelost maar nu komt er een andere naar voren.

fout -2147024809 (80070057) tijdens uitvoering:
de opgegeven waarde valt buiten het bereik.

Dat laatste komt omdat het blad beveiligd is.
 
@Edm

Toch vind ik het principe: 1 aktie/bewering per regel toch wel erg prettig.
Visueel vind ik ook niets mis aan:

Code:
  Select Case Application.Caller
  Case "Jongen"
    Kleur = 14853632
  Case "Onbekend"
    Kleur = 9158777
  Case "Meisje"
    Kleur = 12495092
  End Select
 
Echt een kwestie van smaak. Voor de compiler maakt het geen enkel verschil :)
 
Het heeft er ook mee te maken dat jouw indentation wat rafeliger oogt.
Mijn interne - tussen oren compiler - vindt dat niet zo leuk. En wie ben ik om daarmee geen rekening te houden.;)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan