erreur 1004

GysExcèRoots

XLDnaute Nouveau
Bonjour tout le monde,

Qui peut m'aider SVP. J'utilise un userform avec des champs à remplir et alimente des cellules spécifique dans le classeur de l'userform. Sauf qu'après enregistrement il doit sélectionner une feuille du classeur MAIS si un autre classeur est ouvert il me met le message d'erreur 1004 La méthode Select de la classe Worksheet à échoué.

Je souhaiterais que quand je clique sur le boutton, ce soit le fichier original qui s'"Enregistre sous" et non le classeur ouvert vu que je réduit la fenêtre original

Merci d'avance de votre aide
 

Fichiers joints

Efgé

XLDnaute Barbatruc
Bonjour à tous

J'ai peur que le classeur Thisworkbook ne soit pas affiché; et donc que le Select plante.

Cordialement
 

job75

XLDnaute Barbatruc
Bonjour GysExcèRoots, cathodique, Efgé,

En activant le ThisWorkbook on devrait éviter tout problème :
VB:
Private Sub CommandButton1_Click()
With ThisWorkbook
    .Activate
    .Sheets("Feuil1").Range("C4") = TextBox1
    Application.Dialogs(xlDialogSaveAs).Show TextBox1
    .Sheets("Feuil2").Select
End With
End Sub
A+
 

BrunoM45

XLDnaute Barbatruc
Bonjour le fil

Ou alors sans avoir besoin de l'activer ;-)
VB:
Private Sub CommandButton1_Click()
    With ActiveWorkbook
      With .Sheets("Feuil1")
        .Range("C4").Value = TextBox1.Value
        Application.Dialogs(xlDialogSaveAs).Show Me.TextBox1.Value
      End With
      .Sheets("Feuil2").Select
    End With
End Sub
A+
 

job75

XLDnaute Barbatruc
Bonjour Bruno,

Il faut activer ThisWorkbook car il a été dit :
Je souhaiterais que quand je clique sur le boutton, ce soit le fichier original qui s'"Enregistre sous" et non le classeur ouvert vu que je réduit la fenêtre original
Par ailleurs ActiveWorkbook n'a pas forcément une Feuil2 => bug.

A+
 

BrunoM45

XLDnaute Barbatruc
Bonjour Bruno,
Il faut activer ThisWorkbook car il a été dit :
Par ailleurs ActiveWorkbook n'a pas forcément une Feuil2 => bug.
A+
Alors il faut garder pour source le classeur contenant la macro et enregistrer une copie sous le nom de la Textbox
VB:
Private Sub CommandButton1_Click()
    With ThisWorkbook
      With .Sheets("Feuil1")
        .Range("C4").Value = TextBox1.Value
        Application.Dialogs(xlDialogSaveCopyAs).Show Me.TextBox1.Value
      End With
      .Sheets("Feuil2").Select
    End With
End Sub
A+
 

Discussions similaires


Haut Bas