[Déplacé .Net --> VBA] Recopie feuille

Peponne31 Messages postés 8 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 5 juillet 2020 - 9 sept. 2009 à 21:59
Peponne31 Messages postés 8 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 5 juillet 2020 - 10 sept. 2009 à 17:00
Bonsoir à tous,

dans un classeur, j'ai 2 feuilles du nom de Devis1page et Devis2pages comme leur noms l'indiquent, elles me permètent de faire des devis sur une ou deux pages. Je sai rappeler un devis pour le modifier mais ne sai pas faire la différence entre un devis 1 feuille et un devis 2 feuilles. Pour ètre clair si je rappele un devis 2 feuilles dans la feuille Devis1page, il y va et je n'ai pas de message d'erreur mis à part les cellules erronnées. voici se que j'ai fais:
PS en J3 je rappelle mon devis
Excel 2003

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Address = "$J$6" Then
ValideSaisie
ActiveSheet.Unprotect
LectureDeJ6
EcritureDeB10
ActiveSheet.Protect

Feuille = ActiveSheet.Name
ElseIf Target.Address = "$J$3" Then
RéouvreDevis1page Target.Value
ActiveSheet.Unprotect
MaValeurDeB10
MaValeurDeJ6
ActiveSheet.Protect
End If
End Sub
Sub RéouvreDevis1page(Fich)
'Met la date aujourdhui
ActiveSheet.Unprotect
Range("I12").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
ActiveCell.Value = ActiveCell.Value
'Transforme aujourdhui () en valeur
Range("date").Select
ActiveCell.Value = ActiveCell.Value
Dim Chemin As String, Ctr As Integer, Plage As Range, c As Range
Dim Message
Chemin = "C:\FERRE Jean-Raymond\devis"
Ctr = 21
'Permet de contrôler si un N° de devis existe.
Err = 0
On Error Resume Next
Workbooks.Open Chemin & Fich & ".xls"
If Err = 1004 Then
'Sheets("Devis1Page").Unprotect
zz_Clignote2
Message = MsgBox("Ce N° de devis n'existe pas !", , "FERRE Jean-Raymond")

End If

Feuille = ActiveSheet.Name
With Workbooks("FERRE Jean-Raymond.xls").Sheets("Devis1page")
.Range("num_client") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("num_client")
.Range("dnomcli1") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("dnomcli1")
.Range("numdevis1") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("numdevis1")
.Range("frue1") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("frue1")
.Range("frue2") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("frue2")
.Range("fville") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("fville")
.Range("fcp") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("fcp")
.Range("téléphone") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("téléphone")
.Range("portable") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("portable")
.Range("fremise") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("dremise")
.Range("B17") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("B17")
.Range("H4") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("H4")
.Range("H5") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("H5")
.Range("I51") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("I51")
Set Plage = Workbooks(Fich & ".xls").Sheets(Feuille).Range("A21:A50")
For Each c In Plage

.Range("A" & Ctr) = c.Value
.Range("F" & Ctr) = c.Offset(0, 1)
.Range("G" & Ctr) = c.Offset(0, 2)
.Range("H" & Ctr) = c.Offset(0, 3)
.Range("J" & Ctr) = c.Offset(0, 5)
Ctr = Ctr + 1

Next c
Workbooks(Fich & ".xls").Close False
ActiveSheet.Protect
End With
End Sub

6 réponses

jepasderemy Messages postés 11 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 11 octobre 2009
10 sept. 2009 à 13:16
peux-tu ouvrir dans un autre classeur, ou forcément dans le classeur courant ?
0
Peponne31 Messages postés 8 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 5 juillet 2020
10 sept. 2009 à 13:56
Bonjour Jepasderemy,

j'ouvre obligatoirement dans le classeur courant qui est celui qui a crée le devis et en J3 je rappele mon devis pour une modification quelconque .
Merci
0
jepasderemy Messages postés 11 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 11 octobre 2009
10 sept. 2009 à 14:36
Peut-être en testant le nombre de feuilles dans le classeur à ouvrir avec la fonction Worksheets.Count ?
0
Peponne31 Messages postés 8 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 5 juillet 2020
10 sept. 2009 à 16:29
Re

Je ne sais comment utiliser cette fonction,
une bonne partie du programme à été faite par des personnes qui mont énormémment aidé.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jepasderemy Messages postés 11 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 11 octobre 2009
10 sept. 2009 à 16:39
Worksheets.Count permet de compter le nombre de feuilles du classeur

var=Worksheets.Count

var retournera alors 3 s'il y a 3 feuilles dans le classeur

regarde pour tester ça sur le devis que tu veux ouvrir
0
Peponne31 Messages postés 8 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 5 juillet 2020
10 sept. 2009 à 17:00
Mon classeur contient plusieurs feuilles:Devis, Facturation, Compta, Aide etc...
Lorsque je suis dans la feuille Devis1page, je cré un devis qui n'a que 1 page en sortie imprimante,la feuille Devis2pages me cré 2 pages.
C'est lorsque je rappele un devis pour ètre modifier que j'ai un problème (petit) car jai un bouton qui me permet d'effacer le formulaire et de re rentrer un N° de devis en J3 mais j'aurais aimer avoir un message d'erreur qui me dise lorsque je suis en Devis1page que le devis que je rappele est en mode 2 pages ou vice versa.
0
Rejoignez-nous