Macro ne fonctionne plus..

Résolu
Bonjour,
Voici ma macro qui permet de copier coller des valeurs avec un collage spécial puis elle enregistre le fichier sous un nom (qui est dans Z8) dans un répertoire particulier.. Quand j'exécute la macro ça fait planter mon ordi..pourtant ça avait marché les premières fois..

Sub Enregistreretcoller()

Range("Z4").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1:T6").Select
Range("P1").Activate
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("E10").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("R8").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("E12").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveWindow.SmallScroll Down:=24
Range("A43:T55").Select
Range("L43").Activate
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Dim fichier As String
fichier = "K:\Mes Documents\Documents\00 XXXXX\00 XXX\1010 XXX\blab blabla\" & [Z8].Value & ".xls"
ActiveWorkbook.SaveAs ([fichier])
MsgBox ("Le fichier a été enregistré sous " & fichier)

End Sub

Est-ce que quelqu'un a une idée du problème?
Configuration: Windows XP Internet Explorer 6.0

7 réponses

  1. Contributeur
    bonjour

    Pour le "fun" voici ce que pourrait être ta macro
    Sub Enregistreretcoller()
        Range("Z4").Value = Range("Z4").Value
        Range("P1").Value = Range("P1").Value
        Range("E10").Value = Range("E10").Value
        Range("R8").Value = Range("R8").Value
        Range("E12").Value = Range("E12").Value
        Range("L43").Value = Range("L43").Value
    
    Dim fichier As String, suffixe As Variant
        fichier = "K:\Mes Documents\Documents\00 XXXXX\00 XXX\1010 XXX\blab blabla\" & [Z8].Value
        While Dir(fichier & suffixe & ".xls") <> ""
            suffixe = suffixe + 1
        Wend
        ActiveWorkbook.SaveAs (fichier & suffixe & ".xls")
        MsgBox ("Le fichier a été enregistré sous " & fichier & suffixe & ".xls")
    
    End Sub
    1
    1. Merci beaucoup ^^

      Ta macro marche bien aussi..et c'est vrai que c'est beaucoup plus simple...
      0
  2. Mince !! autant pour moi c'est moi qui marche pas bien...
    En faite la macro marche...sauf que quand le fichier existe déjà ça fait planté excel.. est-ce que c'est possible qu'il vérifie si le fichier existe déjà et que si c'est le cas il l'enregistre avec un ti indice(n'importe quoi: l'heure, un chiffre entre 1 et 20, une lettre de a à K)?
    0
    1. Pllllllleeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaasssseeeeeeeeeeee Help meeeeeeeeeee
      0
      1. Contributeur
        bonjour

        Mis à part le fait de faire une sauvegarde, cette macro ne sert qu'à se promener dans le classeur?

        Cette sauvegarde peut donc être modifiée ainsi :
        Dim fichier As String
        fichier = "K:\Mes Documents\Documents\00 XXXXX\00 XXX\1010 XXX\blab blabla\" & [Z8].Value & ".xls"
        If Dir(fichier) <> "" Then
            fichier = "K:\Mes Documents\Documents\00 XXXXX\00 XXX\1010 XXX\blab blabla\" & [Z8].Value & Format(Time, "hh_mm_ss") & ".xls"
        End If
            ActiveWorkbook.SaveAs (fichier)
        MsgBox ("Le fichier a été enregistré sous " & fichier)
        
        0
        1. Merci beaucoup^^

          c'est super bien ce que t'as fait..et pour comprendre mieux en faite..moi au début j'avais essayé de mettre un indice genre A:

          fichier = "K:\Mes Documents\Documents\00 XXXXX\00 XXX\1010 XXX\blab blabla\" & [Z8].Value & "A" & ".xls"

          Pourquoi ça ne marchait pas?

          En faite mon fichier il sert juste comme t'as dit à enregistrer et aussi à faire des copier coller de valeurs pour supprimer certaines formules qui font un lien vers un autre fichier...

          Mais déjà et encore merci..t'assures^^
          0
          1. Contributeur
            bonjour

            aussi à faire des copier coller de valeurs pour supprimer certaines formules

            Pour cela tu peux remplacer ceci
            Range("Z4").Select
            Selection.Copy
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
             
            par cela qui fait de même en bien plus simple
            Range("Z4").Value = Range("Z4").Value
            0
            1. Un gars de ma boite vient de ma donner la solution la et ça marche aussi pas mal ^^
              Merci à toi en tout cas ^^

              Dim Fichier As String
              Dim FichierVerif As String
              Dim Extension As String
              Dim i As Integer

              i = 1
              Extension = ".xls"
              Fichier = "C:\Mes documents\" & [Z8].Value
              If PresenceFichier(Fichier & Extension) = False Then ' fichier non existant
              Fichier = Fichier & Extension
              ActiveWorkbook.SaveAs ([Fichier])
              MsgBox ("Le fichier a été enregistré sous " & Fichier)

              Else
              FichierVerif = Fichier
              Do While PresenceFichier(FichierVerif & Extension) = True
              i = i + 1
              FichierVerif = Fichier & "_" & i
              Loop

              Fichier = Fichier & "_" & i & Extension
              ActiveWorkbook.SaveAs ([Fichier])
              MsgBox ("Le fichier a été enregistré sous " & Fichier)
              End If

              End Sub

              Public Function PresenceFichier(Fichier As String) As Boolean
              On Error Resume Next
              Dim taille As Long

              taille = FileLen(Fichier)

              PresenceFichier = Not (Err.Number > 0)

              On Error GoTo 0
              End Function
              0
          2. Contributeur
            bonjour

            Effectivement, pourquoi ne pas faire compliqué quand on peut faire simple...

            "il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher. "
            Terre des hommes (1938), Antoine de Saint-Exupéry
            0
            1. Oué je sais c'est un peu compliqué..
              Est-ce quand on allège des macros le fichier devient moins lourd ou la macro mais moins de temps à se lancer?
              0