Macro ne fonctionne plus..

Résolu
Carooooooo Messages postés 39 Date d'inscription   Statut Membre -  
Carooooooo Messages postés 39 Date d'inscription   Statut Membre -
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. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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. Carooooooo Messages postés 39 Date d'inscription   Statut Membre
       
      Merci beaucoup ^^

      Ta macro marche bien aussi..et c'est vrai que c'est beaucoup plus simple...
      0
  2. Carooooooo Messages postés 39 Date d'inscription   Statut Membre
     
    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
  3. Carooooooo Messages postés 39 Date d'inscription   Statut Membre
     
    Pllllllleeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaasssseeeeeeeeeeee Help meeeeeeeeeee
    0
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Carooooooo Messages postés 39 Date d'inscription   Statut Membre
     
    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
  7. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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. Carooooooo Messages postés 39 Date d'inscription   Statut Membre
       
      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
  8. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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. Carooooooo Messages postés 39 Date d'inscription   Statut Membre
       
      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