Problème de "range" avec VBA Excel

Résolu
lecrol Messages postés 214 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

Dans une appli Excel, j'essaie depuis un bouton commande de recopier une feuille devis sur une feuille facture. Voilà ci-dessous le code que j'utilise pour cela, code attaché à la feuille "Devis" depuis un bouton de commande. La feuille "Facture", elle, fait partie du même classeur.

La première ligne "range" fonctione bien.
Les deux transferts suivants concernent des plages de cellules, bloc_adresse et blocdetail. Et ces deux-là ne fonctionnent pas. Je n'ai pourtant aucun message d'erreur.
Qui pourrait m'éclairer ? Merci d'avance !
Roland
-----------------------------------------------------------------------
Private Sub Devis_facturer_Click()
'
Worksheets("Facture").Range("Fac_reference") = "N.devis n° " & Range("Nofac") & " du : " & Range("Datefac") & " Règlement prévu : " & Range("dev_Regl")
'
Sheets("Facture").Range("Fac_bloc_adresse") = Range("dev_Bloc_adresse")
'
WorkSheets("Facture").Range("Fac_blocdetail") = Worksheets("Devis").Range("dev_blocdetail")
'
Sheets("Facture").Activate
End Sub

A voir également:

2 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 728
 
bonjour

j'essaie depuis un bouton commande de recopier une feuille devis

Ce n'est pas de la recopie car cela ne fait que valoriser une autre plage.

Comme tu fonctionne avec des plages nommées (ce qui est très bien), difficile de te dire la raison du non fonctionnement.

Si tu pouvais nous mettre un exemple de classeur, sans données identifiables et privées, mais avec la structure de tes données sur http://www.cijoint.fr/ puis nous mettre le lien généré ici ce serait plus facile.
0
lecrol Messages postés 214 Statut Membre 24
 
Merci beaucoup de ta réponse ! C'est vraiment sympa. Mais entre temps j'ai essayé une autre écriture.

Avant de faire mon transfert range("devis...") sur range("Facture..."), je passe par une variable intermédiaire. Et là, ça fonctionne parfaitement bien ! Ma feuille "facture" récupére bien les valeurs de la feuille "devis"

Voilà, ci-dessous, le nouveau code qui fonctionne :

Bloc_adresse = Worksheets("Devis").Range("dev_Bloc_adresse")
Worksheets("Facture").Range("Fac_bloc_adresse") = Bloc_adresse
Bloc_detail = Range("dev_blocdetail")Worksheets("Facture").Range("Fac_blocdetail") = Bloc_detail
ColonneP = Range("Dev_colonneP")
Worksheets("Facture").Range("Fac_colonneP") = ColonneP

Il reste que je ne vois toujours pas pourquoi le code précédent ne fonctionnait pas.

Amicalement
Roland
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
bonjour
peut etre passer par un copier/coller comme ci-dessous

Range("dev_blocdetail").Select
Selection.Copy
Sheets("facture").Select
ActiveSheet.Range("fac_blocdetail").Cells(1, 1).Select
' copie tout
ActiveSheet.Paste
' copie valeurs uniquement
' Selection.PasteSpecial Paste:=xlPasteValues

bonne suite
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,
excusez l'incruste

Sheets("Facture").Range("Fac_bloc_adresse") = Range("dev_Bloc_adresse").value
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
ah, la simplicité !!!!
cordialement
0