Macro ne fonctionne plus..

Résolu/Fermé
Carooooooo Messages postés 38 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 22 octobre 2009 - 30 juil. 2009 à 10:57
Carooooooo Messages postés 38 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 22 octobre 2009 - 31 juil. 2009 à 09:58
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?
A voir également:

7 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
30 juil. 2009 à 21:39
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
Carooooooo Messages postés 38 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 22 octobre 2009
31 juil. 2009 à 09:58
Merci beaucoup ^^

Ta macro marche bien aussi..et c'est vrai que c'est beaucoup plus simple...
0
Carooooooo Messages postés 38 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 22 octobre 2009
30 juil. 2009 à 11:31
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
Carooooooo Messages postés 38 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 22 octobre 2009
30 juil. 2009 à 14:52
Pllllllleeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaasssseeeeeeeeeeee Help meeeeeeeeeee
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
30 juil. 2009 à 15:25
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

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

Posez votre question
Carooooooo Messages postés 38 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 22 octobre 2009
30 juil. 2009 à 16:01
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
30 juil. 2009 à 16:10
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
Carooooooo Messages postés 38 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 22 octobre 2009
30 juil. 2009 à 16:55
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
30 juil. 2009 à 18:17
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
Carooooooo Messages postés 38 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 22 octobre 2009
31 juil. 2009 à 09:47
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