nouvelle feuille

  • Initiateur de la discussion Damien
  • Date de début
D

Damien

Guest
Bonjour,
Vous aimez résoudre les problèmes, ehbien en voila un !
je crée une nouvelle feuille qui porte le nom entré par l'utilisateur dans une imputbox.
Des lignes viennent se coller d'une autre feuille, vers cette nouvelle feuille.
Ca fonctionne avec le code suivant (meme s'il n'est pas ecrit avec une extreme purete! :) ):

Private Sub EnregistrerMesQuantités_Click()
Dim StrMonCode As String
StrMonCode = InputBox("Quel est votre code?")
Sheets.Add.Name = StrMonCode
Sheets("Bon").Activate
Rows("27:4000").Select
Selection.Copy
Sheets(StrMonCode).Select
ActiveSheet.Paste
MsgBox "Les quantités ont bien été enregistrées"
Sheets("Bon").Select
MesInfos.Hide
End Sub

Mon problème est maintenant de gérer une erreurs qui pourrait se produire :
-Si le nom entré ds l'imputbox existe déja, il faut alors qu'il enregistre les données sur la feuille existant déja, et donc qu'il ne crée pas de nouvelle feuille.
-
 
A

Arnaud

Guest
salut.

g pas tester donc il peux rester des erreurs :)

Private Sub EnregistrerMesQuantités_Click()

Dim StrMonCode As String
StrMonCode = InputBox("Quel est votre code?")

For i = 1 To ActiveWorkbook.Sheets.Count
If ActiveWorkbook.Sheets(i).Name = StrMonCode Then
ActiveWorkbook.Sheets(i).Activate
GoTo suite
End If
Next i

Sheets.Add.Name = StrMonCode
suite:
Sheets("Bon").Activate
Rows("27:4000").Select
Selection.Copy
Sheets(StrMonCode).Select
ActiveSheet.Paste
MsgBox "Les quantités ont bien été enregistrées"
Sheets("Bon").Select
MesInfos.Hide
End Sub
End Sub
 
D

Damien

Guest
Merci pour l'info !
Mais ca bloque au niveau de la ligne 10 (Sheets(StrMonCode).Select) et ducoup il me copie la feuille dans un nouveau fichier ???
j'comprends pas ...help !

Private Sub EnregistrerMesQuantités_Click()
Dim StrMonCode As String
StrMonCode = InputBox("Quel est votre code?")
For i = 1 To ActiveWorkbook.Sheets.Count
If StrMonCode = ActiveWorkbook.Sheets(i).Name Then
GoTo suite
End If
Next i
Sheets.Add.Name = StrMonCode
suite:
Sheets("Bon").Copy
Sheets(StrMonCode).Select
ActiveSheet.Paste
MsgBox "Les quantités ont bien été enregistrées"
Sheets("Bon").Select
MesInfos.Hide
End Sub
 
M

mDF

Guest
Bonsoir Damien et Arnaud,

Peut-être pourrais-tu essayer le code ci-dessous :

Private Sub EnregistrerMesQuantités_Click()
Dim StrMonCode As String
Dim Feuil As Worksheet
Dim FeuilExiste As Boolean

StrMonCode = InputBox("Quel est votre code?")

For Each Feuil In ThisWorkbook.Sheets
If Feuil.Name = StrMonCode Then
FeuilExiste = True
Exit For
End If
Next Feuil
If Not FeuilExiste Then Sheets.Add.Name = StrMonCode

Worksheets("Bon").Rows("27:4000").Copy
Worksheets(StrMonCode).Paste
MsgBox "Les quantités ont bien été enregistrées"
Sheets("Bon").Select
MesInfos.Hide
End Sub

Cordialement.
Didier
 
D

Damien

Guest
ca marche merci ! (quel talent)
seul truc...
j'ai voulu remplacer :
Worksheets("Bon").Rows("27:4000").Copy
par :
Worksheets("Bon").Copy
pensant qu'i allait ducoup copier tte la page, mais la ca bug a la ligne suivante :
Worksheets(StrMonCode).Paste

Comment je peux faire pour obtenir le meme résultat qu'avec la superbe formule de mDF, mais en faisant copier toute la page.

merci , merci et encore merci !
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 331
Membres
103 519
dernier inscrit
Thomas_grc11