copier coller en VB qui ne marche pas!

A

alaie

Guest
Je cherche à faire un copier / collage spécial qui ne conserve que la valeur de ma cellule.

J'ai rechercher dans le forum et j'ai trouvé ce code (entre les ***)
Code:
Sub Macro1()


Dim NF As Integer 'déclare la variable NF (Nom Fichier)

ThisWorkbook.Save 'enregistre le classeur actuel
On Error GoTo fin 'si le fichier n'a pas un nom convertible en chiffre
'définit la variable NF (ancien nom converti +1)
NF = CInt(Mid(ThisWorkbook.Name, 1, Len(ThisWorkbook.Name) - 4)) + 1
ChDir 'C:\\Documents and Settings\\Audrey\\Bureau'
ThisWorkbook.SaveAs (NF & '.xls') 'enregistre sous NF.xls

'********************
Sheets('2005').Cells('A2').Value = Sheets('2005').Cells('L5').Value
'********************

ActiveSheet.Range('B1:B100').ClearContents 'supprime le contenu de certaines cellules (à adapter)

fin:
End Sub

ce code ne marche pas à savoir que plus rien ne se passe. Il crée bien mon fichier 2006.xls avec les données de 2005.xls mais non seulement il ne copie colle pas mes cellules mais en plus il n'efface plus les cellules!!! Sachant que le code marchait très bien avant l'ajout de cette fameuse ligne (entre les ****) :eek:

Vous voyez le problème???

Merci d'avance!!!
 

Hellboy

XLDnaute Accro
Bonjour alaie

Je vois 2 choses:

1- Bien sur que la ligne ajouté fait partie du problème. Pour commencer elle utilise la mauvaise syntaxe pour la commande Cells()
Cells fonctionne avec des numéro de ligne et de colonne. Donc pas de lettre pour la colonne.
Ex: Range('A2') = Cells(2,1)

2- Le code devait bien fonctionner dans un contexte précis. Le tiens n'est pas tout a fait connus. Alors, il se peut que ça ne fonctionne pas pour toi. Il faut comprendre que le nom du fichier doit être un nombre. si il ne l'est pas, tu sort de la macro avant le traitement.

Voici ce que je te propose, mais sous toute réserve, car je ne suis pas sure du contextedans lequel tu l'applique.



Dim NF As Integer 'déclare la variable NF (Nom Fichier)

ThisWorkbook.Save
'enregistre le classeur actuel
On Error GoTo fin 'si le fichier n'a pas un nom convertible en chiffre
'définit la variable NF (ancien nom converti +1)
NF =
CInt(Mid(ThisWorkbook.Name, 1, Len(ThisWorkbook.Name) - 4)) + 1
ChDir 'C:\Documents and Settings\Audrey\Bureau'
ThisWorkbook.SaveAs (NF & '.xls')
'enregistre sous NF.xls

'********************
With ThisWorkbook.Sheets('2005')
        .Range('A2').Copy
        .Range('L5').PasteSpecial Paste:=xlPasteValues
End With
'********************

ActiveSheet.Range('B1:B100').ClearContents
'supprime le contenu de certaines cellules (à adapter)

On Error GoTo 0
Exit Sub

fin:
On Error GoTo 0
End Sub

Message édité par: Hellboy, à: 10/10/2005 19:26
 
A

alaie

Guest
Super ça marche merci merci merci!!!

je n'ai pas encore trop détaillé ton code mais je vais le faire. ca m'interresse en plus car je travaille plutot sur C++ ou Java mais jamais sur VB. :huh:

Pour l'instant l'urgence c'est surtout de faire comprendre le code a mes stagiaires demain... :eek: (c'est pas gagné) car je suis formatrice en bureautique (eh oui honte à moi qui ne connait pas le VB)

milles merci en tout cas c'est sympa de m'avoir dépannée!!
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry