Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier formats et valeures

  • Initiateur de la discussion Initiateur de la discussion br44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

br44

XLDnaute Impliqué
Bonsoir le forum

Voilà je voudrais savoir si il est possible de modifier la procédure qui suit pour qu'elle copie uniquement le format et les valeures ?


Sheets("Facture").Range("1:50").Copy Destination:=Sheets("Recap1") _
.Range("A65536").End(XlUp).Offset(1,0)

Vous remerciant par avance des rèponses èventuelles et du temps passé je vous dis à bientôt sur se fil

Br44
 
Re : Copier formats et valeures

Bonsoir Br44

Tu peux essayer le code ci dessous

Code:
Sheets("Facture").Range("1:50").Copy 
with Sheets("Recap1").Range("A65536").End(XlUp).Offset(1,0)
.PasteSpecial Paste:=xlValues 
.PasteSpecial Paste:=xlFormats 
end with

Bonne soirée
@+
 
Re : Copier formats et valeures

re: Rebonsoir Pierrot93 ,le forum


je viens de teste t'as formule . Il y a un petit bug dont voici le dètail :

le message d'erreur dit:

Errreur d'exution'9':
l'indice n'appartient pas à la selection

Le bug se situe à se niveau :

With Sheets("Rècap1").Range("A65536").End(XlUp).Offset(1,0)

Voilà se que je peut te dire pour l'instants .Je continue de chercher de mon côté ,si tu as une solution n'hesite pas je ferais de même .
Bon je te dis à plus sur se fil et te souhaite une bonne soirèe

Br44
 
Re : Copier formats et valeures

re: Bonjour le forum,Pierrot 93 et Nat 54

Pierrot :

pour rèpondre à t'as question pour ce qui conserne mon Range("1:50") comme tu dis il sagit tout simplement d'une plage de 50 lignes sur la quelle j'ai ma facture . cela equiveau à Range("A1:G50") .

Merci pour avoir répondu aussi vite à mon dernier message et désolé pour le temps mis à vous répondre .

Nat :

Merci à toi d'avoir repèrer la faute d'accant et de l'avoir signalé .

Bon tout ça ne rèsoud pas mon problème car le bug ces dèplacer au niveau du PasteSpecial.Paste=XlValues .

donc je vous mais la procédure complète que je souhaite modifier .
Si vous avez une idée pour obtenir le résultat suivant je vous en remercie par avance.

le but :que la deuxième copie se faces par copie valeures est formats

ma procédure :

Sheets ("Détail").Range("A1:G29").Copy destination =Sheets("Récap1).Range("A65536").End(XlUp)
Sheets ("Facture").Range("1:50").Copy Destination =Sheets ("Récap1).Range("A65536").End(XlUp).Offset(1,0)

A Noter : Dans cette configuration sela marche ,mais le résultat change dans la deuxième copie à chaque nouvelle enregistrement d'où le soussi .
Je vous remercie donc par avance pour toute sugestion qui pourrais m'aider si cela biensure ne vous dérrange pas trop . Je vous dis donc à plus et à bientôt sur se fil et merci d'avance .
br44
 
Re : Copier formats et valeures

Bonsoir Br44,

Pour moi tu devrais mettre Range("A1:G50") au lieu de Range("1:50") , moi j'avais éxécuté le code que je t'ais donné avec une "feuil1" et "feuil2" et ca marchait en l'état. Je ne vois pas pourquoi tu renseignes ce range comme ca ou alors il y a quelque chose qui m'échappe.

Bonne soirée
@+
 
Re : Copier formats et valeures

re: bonjour le forum,bonjour Pierrot93

Pour rèpondre à t'as question au début je mettais l'adresse de la cellule au niveau de la destination soit :

Sheets("Rècap1).Range("A1") au lieu de Range("A65536").End (XlUp) ce qui me donnais un bug car à chaque fois il me demendais si je voulais remplacer la première par la deuxième ,puis j'ai eu l'infos mais comme cela fonctionnais j'ai conservé cette formulation . Voilà pour l'explication ,maintenant si tu crois que se serais mieux en mettant l'adresse complète j'en prend acte et l'applique à partir de maintenant .

Je voulais m'excuser pour le retard mis à t'addresser se message mais j'ai ètè pas mal occupé par mon boulot .

Merci encore pour t'as patience et je tient au courrant au sujet du résultat A bientôt sur se fil
Br44
 
Re : Copier formats et valeures

re: Rebonjour le forum ,Pierrot 93

Petit Bilan :

J'ai modifier comme convenu et cela marche bien quand il sagit de copier seulement la deuxième plage ,mais dès que j'attoute la première la copie de la deuxième ne mais pas au format original

explication :

Sheets("Factures").Range("A1:G50").Copy
With Sheets("Récap1").Range("A65536").End(XlUp).Offset(1,0)
.PasteSpecial Paste:=XlValues
.PasteSpecial Paste:=XlFormtas
End With

Fonctionne
mais si J'écrit :

Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap1") _
.Range("A65536").End(XlUp)
Sheets("Factures").Range("A1:G50").Copy
With Sheets("Récap1").Range("A65536").End(XlUp).Offset(1,0)
.PasteSpecial Paste:=XlValues
.PasteSpecial Paste:=XlFormtas
End With

Alors le formats de la "Facture" n'est pas le même que l'original d'où le soussi.

Si tu as une idée la dessus elle seras la bienvenue .

En te remerciant par avances et milles excuses pour le dèrengement .Sur ce à plus
Br44
 
Re : Copier formats et valeures

Bonjour Br44, le forum

Peut être modifier comme ceci :

Code:
Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap1") _
.Range("A65536").End(XlUp)).[COLOR="Red"]Offset(1,0)[/COLOR]
Sheets("Factures").Range("A1:G50").Copy
With Sheets("Récap1").Range("A65536").End(XlUp).Offset( 1,0)
.PasteSpecial Paste:=XlValues
.PasteSpecial Paste:=XlForm[COLOR="red"]as[/COLOR]
End With

A priori, a ce que je vois de ton code, il colle sur une cellule ou il y a peut être déjà des données.

Sinon essaies de mettre ton fichier ca serait plus facile.

Bonne journée
@+
 
Re : Copier formats et valeures

re: Bonjour Pierrot93,le forum


Merci pour avoire répondu aussi vite . Bon j'ai tester t'as nouvelle proposition et le résultat est que la facture se copie bient mais le premier se copie sans les dimmentions original.

Tu trouveras ci-joint mon fichier avec le resultat en "Récap1" .

je t'es mis deux classeurs à cause des liaisons .

La commande de l'userfrom se fait par "f5" en mode visualBasic il n'est pas automatisé pour le moment .

les code Clients commence par "C" (Voir Fichier "C")


j'ai conserver le "Range("1:50")" sinon cela ne fonctionne pas au niveau de la hauteure des lignes .

Dans cette configuration il ne reste plus qu'à trouver comment regler la hauteur des lignes et largueures des colonnes our la plage "Range("A1:G29").


Voilà où j'en suis actuellement.

Pour terminer tu mais une pranthèses fermer en fin de première de ligne de la première procédure es-ce une fautes de frappe ou voulu ?

XlFormas écrie comme ça n'est pas valide .

sur ce je te dis bon courrage et bonne soirée et de remercie pour le temps passé sur mon problème .

A bientôt sur le fil br44
 

Pièces jointes

Re : Copier formats et valeures

Bonjour Br44

J'ai modifié un peu le code, il faut rajouter une ligne pour la largeur de colonne, par contre la hauteur de ligne n'est pas encore gérée par exel (verson EXCEL 2002) celle que je connais.

Code:
Private Sub CommandButton2_Click() 'bouton "Enregistrer la fiche"

Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap1") _
    .Range("A65536").End(xlUp).Offset(1, 0)
Sheets("Facture").Range("1:50").Copy
With Sheets("Récap1").Range("A65536").End(xlUp).Offset(1, 0)
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
.PasteSpecial Paste:=xlColumnWidths
End With

A priori je ne vois pas de quelle parenthese tu me parles !!!

Qu en à format c'est bien xlFormats qu il faut écrire.

Pour ta hauteur de ligne tu peux t'inspirer du code ci dessous :

Code:
mahauteur = ActiveCell.RowHeight = 14

Range("A1:G29").RowHeight = mahauteur

tu détermine "mahauteur" sur la cellule dont tu veux recopier le format.

En espérant avoir répondu à tes questions .

Bonne soirée
@+
 
Re : Copier formats et valeures

re: bonjour Pierrot 93 ,le forum


Petit message pour te remercier pour le temps et la patience que tu fais preuves .

Un point aprés ton dernier message . j'ai rajouter ceci aprés plusieur essais

Dim I As Integer
Dim Y As Integer

With Sheets("Récap1")
For I = 1 To .Range("A1:G29").Columns.Count
.Columns(I).ColumnWidth = Sheets("Détail").Columns(I).ColumnWidth
Next
Y = 1
For I = 2 To .Range("1:29").Rows.Count
.Rows(I).RowHeight = Sheets("Détail").Rows(Y).RowHeight
Next
End With

Cela fonctionne mais juste pour le 1er enregistrement .

J'ai lu il y a quelque temps sur le forum un truc qui parlait de " step "
qui permettrais d' èxècuter à plusieur reprise et avec un écart régulier la même action .

Est_ce tu connais cette procédure et si oui ne pourrait-ont pas l'adapter pour la fin de cette procèdure .

ce qui pourrait donner quelques chose comme ça ,où d'approchant :

for i = 2 To. Range("1:29).Rows .Count step 50 ect ....

Te remerciants par avances et espèrant de ne pas abuser de ton temps ,je te dit à plus sur ce fil .

Br44
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Z
Réponses
1
Affichages
602
Réponses
1
Affichages
1 K
D
Réponses
4
Affichages
1 K
I
  • Question Question
Réponses
1
Affichages
3 K
A
Réponses
10
Affichages
2 K
A
A
  • Résolu(e)
Microsoft 365 Copie autre feuille
Réponses
12
Affichages
1 K
R
Réponses
3
Affichages
4 K
R
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…