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

Waarschuwing voor opslaan sheet

Status
Niet open voor verdere reacties.

hazesoft

Gebruiker
Lid geworden
11 nov 2004
Berichten
361
Hier ben ik al weer beste Excelspecialisten.

Mijn vraag is kort:
Wanneer ik de calculatiesheet wil opslaan zonder dat er een aannemer is ingevoerd, krijg ik een foutmelding (zie bijlage).
Is dit af te vangen met een waarschuwing of terugkeer cel C2?
 

Bijlagen

Laatst bewerkt:
Hoi,

Is dit een oplossing voor je

Code:
      If [c2] <> "" Then
        .Parent.SaveAs "E:\Data\MS-excel\Rogier\Calculaties\" & [c2] & ".xls", FileFormat:=56
      Else
        MsgBox "Geen Aannemer ingevult, doe dit a.u.b. nu!"
        [c2].Select
        Exit Sub
      End If
 
Hier ben ik al weer beste Excelspecialisten.

Mijn vraag is kort:
Wanneer ik de calculatiesheet wil opslaan zonder dat er een aannemer is ingevoerd, krijg ik een foutmelding (zie bijlage).
Is dit af te vangen met een waarschuwing of terugkeer cel C2?

Probeer deze
Code:
Sub Berekeningsblad_bewaren()
[COLOR="Red"]On Error GoTo eind[/COLOR]

Application.ScreenUpdating = False
  With Sheets("calculatie")
     .Unprotect "hazesoft"
     .Copy
     With ActiveWorkbook.Sheets(1)
       .PageSetup.Orientation = 2
       .Shapes("Knop 1").Delete
       With .UsedRange
          .Value = .Value
          .Validation.Delete
       End With
      .Protect "hazesoft"
      .Parent.SaveAs "E:\Data\MS-excel\Rogier\Calculaties\" & [C2] & ".xls", FileFormat:=56
      .Parent.Close
    End With
    .Protect "hazesoft", UserInterFaceOnly:=True
  End With
  MsgBox "De calculatie voor " & [C2].Value & " is nu opgeslagen in de map E:\Data\MS-excel\Rogier\Calculaties\."
With Application
   .Range("C1:E2, C6:E6, Gebied1, Gebied2, Gebied3").ClearContents
    .ScreenUpdating = True
End With
[COLOR="red"]eind:[/COLOR]
End Sub
 
Dag Daniël,

Wanneer ik jouw code invoer, gaat hij inderdaad terug naar C2.
Wanneer ik vervolgens een naam invoer, gebeurt er bij het opslaan echter niets.
 
Laatst bewerkt:
Hoi,

Is dit een oplossing voor je

Code:
      If [c2] <> "" Then
        .Parent.SaveAs "E:\Data\MS-excel\Rogier\Calculaties\" & [c2] & ".xls", FileFormat:=56
      Else
        MsgBox "Geen Aannemer ingevult, doe dit a.u.b. nu!"
        [c2].Select
        Exit Sub
      End If
Wanneer ik jouw code gebruik, komt er eerst een sheet met de naam Map4 of zoiets.
Verder werkt hij goed.
 
Laatst bewerkt:
Dag Daniël,

Wanneer ik jouw code invoer, gaat hij inderdaad terug naar C2.
Wanneer vervolgens een naam invoer, gebeurt er bij het opslaan echter niets.

deze van spiderman aangepast
Code:
Sub Berekeningsblad_bewaren()

Application.ScreenUpdating = False
  With Sheets("calculatie")
    If [c2] <> "" Then
     .Unprotect "hazesoft"
     .Copy
     Else
        MsgBox "Geen Aannemer ingevuld, doe dit a.u.b. nu!"
        [c2].Select
        Exit Sub
        End If
     With ActiveWorkbook.Sheets(1)
       .PageSetup.Orientation = 2
       .Shapes("Knop 1").Delete
       With .UsedRange
          .Value = .Value
          .Validation.Delete
       End With
      .Protect "hazesoft"
      .Parent.SaveAs "E:\Data\MS-excel\Rogier\Calculaties\" & [c2] & ".xls", FileFormat:=56
      .Parent.Close
      
    End With
    .Protect "hazesoft", UserInterFaceOnly:=True
  End With
  MsgBox "De calculatie voor " & [c2].Value & " is nu opgeslagen in de map E:\Data\MS-excel\Rogier\Calculaties\."
With Application
   .Range("C1:E2, C6:E6, Gebied1, Gebied2, Gebied3").ClearContents
    .ScreenUpdating = True
End With
End Sub
 
deze van spiderman aangepast
Code:
Sub Berekeningsblad_bewaren()

Application.ScreenUpdating = False
  With Sheets("calculatie")
    If [c2] <> "" Then
     .Unprotect "hazesoft"
     .Copy
     Else
        MsgBox "Geen Aannemer ingevuld, doe dit a.u.b. nu!"
        [c2].Select
        Exit Sub
        End If
     With ActiveWorkbook.Sheets(1)
       .PageSetup.Orientation = 2
       .Shapes("Knop 1").Delete
       With .UsedRange
          .Value = .Value
          .Validation.Delete
       End With
      .Protect "hazesoft"
      .Parent.SaveAs "E:\Data\MS-excel\Rogier\Calculaties\" & [c2] & ".xls", FileFormat:=56
      .Parent.Close
      
    End With
    .Protect "hazesoft", UserInterFaceOnly:=True
  End With
  MsgBox "De calculatie voor " & [c2].Value & " is nu opgeslagen in de map E:\Data\MS-excel\Rogier\Calculaties\."
With Application
   .Range("C1:E2, C6:E6, Gebied1, Gebied2, Gebied3").ClearContents
    .ScreenUpdating = True
End With
End Sub

Daniël die van jouw werkt, het loopt als een trein. Je bent superrrr:thumb:.
 
Daniël die van jouw werkt, het loopt als een trein. Je bent superrrr:thumb:.

Het struikelblokje is dat we moeilijk kunnen testen :rolleyes: tenzij we de ""E:\Data\MS-excel\Rogier\Calculaties\" & [c2] & ".xls", FileFormat:=56 " gaan aanpassen aan de noden van onze opslag ruimte , ik heb nu wel drive's genoeg C: D: F: G: ( via usb sticks ) maar je bent terug al heel snel geholpen minder dan uur :thumb: en ik had de voorzet van spidernam ;)
 
@hazesoft , ik kon het me niet laten , maar kijk eens naar de keuze cellen , nu kan je een lege cel selecteren . In jouw bestandje eens je een selectie op een rij had gemaakt moest je die behouden , nu kan je deze terug blanco zetten
 

Bijlagen

@hazesoft , ik kon het me niet laten , maar kijk eens naar de keuze cellen , nu kan je een lege cel selecteren . In jouw bestandje eens je een selectie op een rij had gemaakt moest je die behouden , nu kan je deze terug blanco zetten
Dit is natuurlijk nog beter.
Ik merk alleen geen verschil en volgens mij is de programmacode gelijk.
 
Laatst bewerkt:
Dit is natuurlijk nog beter.
Ik merk alleen geen verschil en volgens mij is de programmacode gelijk.

De programma code blijft gelijk , maar als je nu een selectie in kolom A maakt kan je die selectie altijd teniet doen door een lege regel die ik in de validatie heb ingevoerd .
Test in jouw bestand > selecteer in kolom A op rij 20 ( A20) een profiel, naderhand blijkt dat je dat profiel niet nodig had. Hoe ga je die selectie in jouw bestandje verwijderen ? In mijn bestandje kan je gewoon terug die cel A20 selecteren en een lege regel invoegen .
 
De programma code blijft gelijk , maar als je nu een selectie in kolom A maakt kan je die selectie altijd teniet doen door een lege regel die ik in de validatie heb ingevoerd .
Test in jouw bestand > selecteer in kolom A op rij 20 ( A20) een profiel, naderhand blijkt dat je dat profiel niet nodig had. Hoe ga je die selectie in jouw bestandje verwijderen ? In mijn bestandje kan je gewoon terug die cel A20 selecteren en een lege regel invoegen .

OK, nu snap ik het.
Bedankt hè :thumb:.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan