copier coller en VB qui ne marche pas!

  • Initiateur de la discussion Initiateur de la discussion alaie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 ****) 😱

Vous voyez le problème???

Merci d'avance!!!
 
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
 
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... 😱 (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!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour