test sur onglet et nom de feuille

J

jp93

Guest
Bonjour le forum,

Je recherche une ame charitable qui pourra m'aider à debugger mon code, enfin plutot à le faire executer car, dans sont etat actuel, il n'y a pas d'erreur mais il n'execute rien!!
Voila je donne le choix d'une année via une listbox (par exemple 2005), après avoir choisi celle ci, j'aimerais copier c des cellules de la feuille 'cache1' pur aler les copier dans la feuille portant le nom de l'année choisie (dans l'exemple 2005). Le soucis est que le programme tourne mais il colle dans la feuille 'cache1'....
Si quelqu'un a une idée....
merci d'avance pour votre aide!!!
sincerement!!


sub année
Sheets('cache1').Select
Range('L2:BQ2').Select
Application.CutCopyMode = False
Selection.Copy
Dim i As Integer
For i = 1 To Sheets.Count
If annee = Sheets(i).Name Then
Sheets('i').Select
Range('A39:BE39').Select
Selection.Paste
End If
Next
Sheets('cache1').Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Ton annee 2005 que tu récupères dans ta listbox si je me rappelle bien c'est d'un userform avec une listbox

Il faut donc que ta variable soit déclarée PUblic en début d'un module avant tout code

donc dans le module

Public MonAnnee as integer

sub CopieAnnee()
Sheets('cache1').Select
Range('L2:BQ2').Select
Application.CutCopyMode = False
Selection.Copy
Sheets(MonAnnee).Select
Range('A39:BE39').Select
Selection.Paste
Sheets('cache1').Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub


dans le code de ta feuille

Private Sub valide1_Click()

MonAnnee = Me.annee.value 'il me semble que ton combobox s'appelle ainsi

End Sub


Autre remarque : Fais attention tu appelles olein de chose par le même nom tu as un combobox qui s'apelle annee une variable qui s'appelle annee et une macro qui s'appelle année
Déjà j'évite les accents en VBA pour variable nom de procédure
Et n'utilises pas les mêmes noms par exemple ta combobox appelle là plutot Cbx_Annee (c'est qu'u exemple)

Bon courage

Message édité par: Pascal76, à: 21/07/2005 10:38
 

2passage

XLDnaute Impliqué
Bonjour

Je pense qu'il faut passer l'annee dans ta fonction

sub année(annee as string)
Sheets('cache1').Range('L2:BQ2').copy sheets(annee).Range('A39')
Application.CutCopyMode = False
Sheets('cache1').Range('L2:BQ2').ClearContents
End Sub

J'ai pas testé mais comme ça ça devrait marcher
A+

Edit : oops... j ai cru voir un haut normand... mais oui mais oui, j'ai bien vu un haut normand.... (salut pascal B) )

Message édité par: 2passage, à: 21/07/2005 10:38
 
J

jp93

Guest
re le forum,

Bonjour 2passage,
Bonjour Pascal76,
Merci a vous pour vos solutions!

2passage: ton code impose de redefinir l'année.. non? moi je l'ai deja choisi via une liste deroulante et je ne vois pas trop comment les relier...

Pascal: Tu as une bonne memoire! ;) en meme temps avec toutes mes questions, comment ne pas te souvenir de moi... :p :eek: j'ai modifier le code comme tu me l'as conseillé mais le test sur l'onglet ne passe pas...il colle toujours dans cache1....

Merci pour le temps passé sur mon code :)
 
J

jp93

Guest
RE a vous,
Encore merci de vous pencher sur mon probleme.
:eek: :eek: :eek:

2passage : avec ta methode, le code annonce une erreur d'objet requis... :(

Pascal : ta methode indique une erreur hors de la plage au niveau de
Sheets(MonAnnee).Select
pourtant lorsque je positionne mon curseur sur MonAnnee il affiche bien l'année que j'ai selectionné dans la liste deroulante... :S

HELP! je suis vraiment à la masse en VBA...
MERCI DE VOTRE PATIENCE :eek:
 
J

jp93

Guest
RE

CA MARCHE!!! MERCI Pascal!! j'ai remplacer integer par string et il selectionne bien la bonne feuille avec le nom de l'année choisi dans la combobox!! (bon il veut pluscoller mais c deja moins grave!! :) )
MERCI
 

Discussions similaires

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh