Problème sélection cellule en VBA

Lady Kassie

XLDnaute Nouveau
Bonjour à tous,

Encore uen fois, j'ai besoin de votre aide svp, je n'y pige que dalle et pourtant ca doit être tout simple.

Sous Excel 2007, j'ai un user form. J'ai bien sur une macro pour transposer mes données sur ma feuille, à chaque fois une ligne ajoutée. Une fois cette ligne ajoutée, d'avance sur ma feuille en colonne 16 (Q) j'ai une formule ayant pour bu de calculer la valeur d'une donnée avant remplissage du user form. Cette cellule, je veux en figer la valeur, par simple copie dans la colonne 15 (P). J'ai fait une petite macro à cet effet:

Sub Heures_prop()
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 16).Select
Selection.Copy
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

End Sub​

Cette petit macro fonctionne très bien si je la roule toute seule. Hors je voudrais l'inclure dans la fin de la transposition de mon user form. Que je l'intègre directement ou que je mette une ligne de commande pour appeler cette macro mise dans le module 1, j'en reviens à la meme chose c'est à dire : Erreur d'éexécution "1004": La méthode Slect de la classe Range a échoué. Et pourtant ca fonctionne si je la roule toute seule !

Auriez vous une idée svp ???

Je vous met en prime le code de transposition que j'ai pour le UserForm:
Private Sub Btn_Enregistrement_Click()
'Mise en place des valeurs saisies

Sheets("Appels").Range("A65536").End(xlUp).Offset(1, 0).Value = Format(Now, "yyyy-mm-dd")
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 1).Value = Format(Now, "hh:mm")
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 2).Value = Lst_Pompier_Appele
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 6).Value = Date_offerte
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 7).Value = Lst_Quart
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 8).Value = Lst_Reponse
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 9).Value = Heures_proposees
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 10).Value = Heures_Acceptees
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 11).Value = Lst_Motif
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 12).Value = Lst_PompRemplace
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 13).Value = Commentaires
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 14).Value = Lst_Chef

Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 9).Value = CInt(Heures_proposees.Value)
Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 10).Value = CInt(Heures_Acceptees.Value)


Unload Form_Appel

Call Module1.Heures_prop

End Sub​

Un GROS GROS merci d'avance !
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Problème sélection cellule en VBA

Bonjour Lady Kassie, bonjour le forum,

Je pense que quand tu lances la macro l'onglet actif n'est pas Appels et ça plante puisque tu utilises la selection... je te propose de faire comme ça :
Code:
Sub Heures_prop()
Dim orig As Range 'déclare la variable orig (ORIGine)
Set orig = Sheets("Appels").Range("A65536").End(xlUp).Offset(0, 16) 'définit la cellule d'origine
orig.Copy 'copie la cellule d'origine
'colle la valeur une colonne avant la cellule d'origine
orig.Offset(0, -1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
End Sub
Le code du bouton ne pose pas de problème puis qu'il n'y a pas sélection... toutefois on pourrait le simplifier aussi :
Code:
Private Sub Btn_Enregistrement_Click()
'Mise en place des valeurs saisies
Dim dest As Range 'déclare la variable dest (DESTination)
 
Set dest = Sheets("Appels").Range("A65536").End(xlUp).Offset(1, 0) 'définit la cellule de destination
 
'palce les données
dest.Value = Format(Now, "yyyy-mm-dd")
dest.Offset(0, 1).Value = Format(Now, "hh:mm")
dest.Offset(0, 2).Value = Lst_Pompier_Appele
dest.Offset(0, 6).Value = Date_offerte
dest.Offset(0, 7).Value = Lst_Quart
dest.Offset(0, 8).Value = Lst_Reponse
dest.Offset(0, 9).Value = Heures_proposees
dest.Offset(0, 9).Value = CInt(Heures_proposees.Value)
dest.Offset(0, 10).Value = Heures_Acceptees
dest.Offset(0, 10).Value = CInt(Heures_Acceptees.Value)
dest.Offset(0, 11).Value = Lst_Motif
dest.Offset(0, 12).Value = Lst_PompRemplace
dest.Offset(0, 13).Value = Commentaires
dest.Offset(0, 14).Value = Lst_Chef
 
Unload Form_Appel
Call Module1.Heures_prop
End Sub
 
Dernière édition:

Lady Kassie

XLDnaute Nouveau
Re : Problème sélection cellule en VBA

Bonjour !

Je suis époustouflée ! Tout est parfaitement fonctionnel, merci !

Ca simplifie tellement le code, c'est merveilleux. Vive l'utilisation de variables... qui, pour le moment ne m'est pas encore rentré dans le crane. :eek: Si vous avez un lien pour un bon dictaticiel pour comprendre l'utilisation des variables, je suis preneure !

Un gros merci pour l'aide, j'apprécie vraiment ! :)

Bonne journée !
 

Discussions similaires

Statistiques des forums

Discussions
312 754
Messages
2 091 692
Membres
105 050
dernier inscrit
Jcbrazil