Problème de "range" avec VBA Excel

Résolu/Fermé
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 - 8 déc. 2010 à 08:01
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 - 9 déc. 2010 à 17:04
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 686
8 déc. 2010 à 09:41
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 samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 24
Modifié par lecrol le 8/12/2010 à 10:08
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 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
8 déc. 2010 à 10:19
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
8 déc. 2010 à 11:21
Bonjour,
excusez l'incruste

Sheets("Facture").Range("Fac_bloc_adresse") = Range("dev_Bloc_adresse").value
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
9 déc. 2010 à 17:04
ah, la simplicité !!!!
cordialement
0