Problème de "range" avec VBA Excel

Résolu
lecrol Messages postés 200 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
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 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
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 200 Date d'inscription   Statut Membre Dernière intervention   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 10909 Date d'inscription   Statut Membre Dernière intervention   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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,
excusez l'incruste

Sheets("Facture").Range("Fac_bloc_adresse") = Range("dev_Bloc_adresse").value
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
ah, la simplicité !!!!
cordialement
0