[VBA] Probleme copie after + ...

Probleme copie after + ... [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 17-08-2006 à 07:16:01    

Salut,  
je ne comprrend au lieu de me copier la feuille et la renommer il fait simplement remplacer le nom de mon onglet modèle par la case selectionnée.. (j'utilise une plage de cellules que je selectionne comme vous pouvez le remarquer, je n'y arrive pas avec des cases a cocher.. :s)
 
Pourriez vous m expliquer ce qui ne va pas ?? Voici mon code :
 
Sub pro_gui()
Dim Mycell As Range, Mysheet As Worksheet, MyName$
For Each Mycell In Selection
MyName = Mycell.Value
If MyName <> "" Then
On Error Resume Next
Set Mysheet = Sheets("Modèle" )
Sheets("Modèle" ).Copy After
Sheets("Modèle" ).Name = MyName
On Error GoTo 0
If Mysheet Is Nothing Then Sheets.Add.Name = MyName
End If
Next Mycell
End Sub
 
Merci ! ^^

Reply

Marsh Posté le 17-08-2006 à 07:16:01   

Reply

Marsh Posté le 17-08-2006 à 08:59:51    

Bonjour,
ça doit faire quelque chose comme ça :
 
Sub pro_gui()
Dim Mycell As Range, Mysheet As Worksheet, MyName$
For Each Mycell In Selection
MyName = Mycell.Value
If MyName <> "" Then
Set Mysheet = Sheets("Modèle" )
Mysheet.Copy After:=Mysheet
ActiveSheet.Name = MyName
End If
Next
End Sub

 
A+

Reply

Marsh Posté le 17-08-2006 à 10:18:57    

Genial ! merci galopin :Dles feuilles s ajoutent dans un ordre bizzare (mes onglets crées correspondent a des n° , classés par ordre decroissant) mais bon c est pas trop grave j vais essayé d regler le bleme.
 
Et derniere chose :s , j ai essayé de faire ma macro avec des cases a cocher du genre je coche 3 cases correspondant a 3 noms d feuilles et ca me les créent quand je clik sur mon bouton.. mais je sais pas du tout comment  y prendre..
 
Vous pourriez m aider ??

Reply

Marsh Posté le 17-08-2006 à 10:26:17    

routine d'ajout de feuille
.Add
dans l'évenement checkbox1_change()
if checkbox1.value = true then
creationfeuille(1)
end if
 

Reply

Marsh Posté le 17-08-2006 à 10:37:38    

Erf arriv po. c plus compliké k ca.
Le probleme c est qu j ai 40 cases correspondant donc a 40 cellules, contenant chacune un numero.
Donc le truc c est qu il faut que mon prog puisse creer chaque feuille en fonction de la case, si cochée ou pas, et qu en plus en fonction de la cellule correspondant a ma case cochée il puisse lui donner comem nom le n° contenu dans cette cellule.. C du trop high level pour moi :s lol
 
Y a 1 soluss ? merci  

Reply

Marsh Posté le 17-08-2006 à 11:36:09    

Ben c'est sur,  
le problème c'est que l'énoncé de départ était un peu sommaire.
Modifie cette ligne :
 
Mysheet.Copy After:=Sheets(Sheets.Count)
 
A+

Reply

Marsh Posté le 17-08-2006 à 12:47:01    

Ah oki merci pas bete ! dsl j suis novice en la matiere ^^
 
Et mettez moi au courant si vous savez comment modifier mon code en remplacant la selection (un peu lourd) par des cases a cochées.. Merci :D

Reply

Marsh Posté le 17-08-2006 à 13:08:48    

derniere question pendant qu j y suis : QUESTION TTE BETE :
 
Voici mon code deja :
 
Sub pro_gui()
Dim Mycell As Range, Mysheet As Worksheet, MyName$
For Each Mycell In Selection
MyName = Mycell.Value
If MyName <> "" Then
Set Mysheet = Sheets("Modèle" )
Mysheet.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = MyName
ActiveSheet.Range("B9" ) = MyName
ActiveSheet.Range("K10" ) = MyName
ActiveSheet.Range("G9" ) =
End If
Next
End Sub
 
 
Vous remarkerez q une ligne est incomplete. En effet, je voudrais qu en G9 on est la valeur de la cellule a gauche de celle qui est selectionnée  
 
Quelle formule utilisée ???
muchas gracias

Reply

Marsh Posté le 17-08-2006 à 20:30:47    

Probleme résolu, de maniere pas tres academik mais resolu kan mem!
 
j ai une derniere kestion :
j'ai une feuille dans lekel j ai des formules faisant references a des feuilles annexes.. sauf probleme : elles sont pas crées au moment ou j rentre ma formule ce ki fé k toutes mé formules n ont abouties a rien, elles ont été remplacées par "=+#ref!B11" et j peux rien faire pour changer ca.... :'(
COMMENT FAIRE ??
 
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed