VBA petite correction

Patrick -  
 charles -
Bonjour à tous, je me pose une petite question, j'ai un code VBA qui fonctionnait parfaitement, voici la partie conscernée :

Dim mydate As Date
myname = Worksheets("Face to face").Range("C2")
myfirstname = Worksheets("Face to face").Range("C3")
mydate = Worksheets("Face to face").Range("S2")
mymonth = Format(mydate, "mm")
myfile = Year(mydate) & " " & mymonth & " face to face" & " " & myname & myfirstname
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & myfile

et je voulait y apporter une petite modification :

Dim mydate As Date
myname = Worksheets("Face to face").Range("C2")
myfirstname = Worksheets("Face to face").Range("C3")
mydate = Worksheets("Face to face").Range("=SI(S3="";S2;S3)")
mymonth = Format(mydate, "mm")
myfile = Year(mydate) & " " & mymonth & " face to face" & " " & myname & myfirstname
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & myfile

cependant il ne fonctionne plus apres avoir effectué cette modification, est ce que l'un de vous a une idée de la méthode a utiliser?

Merci d'avance a tous

4 réponses

Unombre Messages postés 41 Statut Membre 16
 
Bonjour,

Dim mydate As Date
myname = Worksheets("Face to face").Range("C2")
myfirstname = Worksheets("Face to face").Range("C3")
if Worksheets("Face to face").Range("S3") = "" then
mydate = Worksheets("Face to face").Range("S2")
else
mydate = Worksheets("Face to face").Range("S3")
mymonth = Format(mydate, "mm")
myfile = Year(mydate) & " " & mymonth & " face to face" & " " & myname & myfirstname
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & myfile 


Si j'ai bien compris ton soucis, tu peux essayer ca !
0
Patrick
 
Yeahh Je te remercie enormement, tu a parfaitement compris ce que je voulait et j'ai parfaitement compris le principe donc tout est parfat
Merci

une toute petite correction pour les personne qui pourait nous lire il manque le "end if" ce qui donne

Dim mydate As Date
myname = Worksheets("Face to face").Range("C2")
myfirstname = Worksheets("Face to face").Range("C3")
If Worksheets("Face to face").Range("S3") = "" Then
mydate = Worksheets("Face to face").Range("S2")
Else
mydate = Worksheets("Face to face").Range("S3")
End If
mymonth = Format(mydate, "mm")
myfile = Year(mydate) & " " & mymonth & " face to face" & " " & myname & " " & myfirstname
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & myfile


Encore merci!
0
Archer
 
Bonjour
pour éviter de taper le Worksheets("Face to face") a chaque ligne

Sub Macrodate()
Dim mydate As Date
   With Worksheets("Face to face")
      myname = .Range("C2")
      myfirstname = .Range("C3")
         If .Range("S3") = "" Then
            mydate = .Range("S2")
         Else
            mydate = .Range("S3")
         End If
   End With
mymonth = Format(mydate, "mm")
myfile = Year(mydate) & " " & mymonth & " face to face" & " " & myname & " " & myfirstname
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & myfile
End Sub

A+
Maurice
0
charles
 
Je propose ce code VBA :


Option Explicit

Sub Essai()
  Dim myname As String, myfirstname As String, mydate As Date, myfile As String
  With Worksheets("Face to face")
    myname = .[C2]: myfirstname = .[C3]: mydate = Cells(3 + (.[S3] = ""), "S")
  End With
  myfile = Format(mydate, "yyyy mm") & " face to face" & " " & myname & " " & myfirstname
  ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & myfile
End Sub


Les lignes #5 et #6 doivent être sur une seule ligne ;
idem pour les lignes #8 et #9 ; et pour #11 et #12.

Le corps de la sub est donc sur 6 lignes.

--------------------------------------

Le même code sans les 2 variables myname et myfirstname :


Option Explicit

Sub Essai()
  Dim mydate As Date, myfile As String
  With Worksheets("Face to face")
    mydate = Cells(3 + (.[S3] = ""), "S")
    myfile = Format(mydate, "yyyy mm") & " face to face" & " " & .[C2] & " " & .[C3]
  End With
  ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & myfile
End Sub


Les lignes #8 et #9 doivent être sur une seule ligne.
Ce code VBA est encore plus court !  ;)
 
-1