× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Créer une macro qui recopie une valeur
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
peperon
  Posté le 03/03/2009 @ 14:08 
Aller en bas de la page 
Nouvel astucien
Je t’explique en 2 mots.

En gros,

je veux recopier les « formules » se trouvant sur la feuille NOM dans la colonne C (donc de C8 à C20) dans la colonne E (E8 à E20) mais en changeant « =PERIODE1!$B$5 »en« =PERIODE2!$B$5 »,

« =PERIODE1!$C$5 »en« =PERIODE2!$C$5 »,« =PERIODE1!$D$5 »en« =PERIODE2!$D$5 »,...

.

Je voulais donc créer une macro parce que je dois faire çà pour les 500 bulletins (500 feuilles NOMS Différentes).

PERIODE 1 étant une feuille récapitulative

PERIODE 2 étant une autre feuille recapitulative

NOM étant une feuille avec un tableau qui appelle des valeurs se trouvant sur periode 1 et periode 2

Merci d'avance

Publicité
Bérylion
 Posté le 03/03/2009 à 16:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour à toi aussi...
voila ton bonheur :
Sub Macro()
Sheets("NOM").Select
Range("C8:C20").Copy Destination:=Range("E8:E20")
For Each o In Range("E8:E20")
F = o.FormulaLocal
Mid(F, 9, 1) = "2"
o.FormulaLocal = F
Next
End Sub
enjoy...
peperon
 Posté le 03/03/2009 à 19:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Merci pour le petit code mais ca ne fonctionne pas....du moins pas comme je le voudrais

J'ai peur d'avoir mal expliqué mon problème.

Y a t il moyen de poster mon fichier pour que tu jettes un oeil ?

Merci d'avance

Bérylion
 Posté le 04/03/2009 à 09:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

peperon a écrit :

Merci pour le petit code mais ca ne fonctionne pas....du moins pas comme je le voudrais

J'ai peur d'avoir mal expliqué mon problème.

Y a t il moyen de poster mon fichier pour que tu jettes un oeil ?

Merci d'avance

Salut

faut l'uploader sur un hébergeur (ex: http://cjoint.com)
et nous donner le lien...

peperon
 Posté le 04/03/2009 à 10:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

http://cjoint.com/?dgkJaZwK0O

Voici le lien vers 2 fichiers.

Un .doc avec l'explication et un exemple de fichier excel.

Merci d'avance

Bérylion
 Posté le 04/03/2009 à 12:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut
tu peux éventuellement t'en tirer avec ça : http://cjoint.com/?dgmzXu11xZ
mais tu dois auparavant insérer les feuilles PERIODE3 et comportement3
avec ce code :
Sub Macro()
On Error Resume Next
For i% = 9 To Sheets.Count
Sheets(i).Select
Range("C8:C20").Copy Destination:=Range("E8:E20")
For Each o In Range("E8:E20")
F = o.FormulaLocal
Mid(F, 9, 1) = "2"
o.FormulaLocal = F
Next
Next
End Sub
tu fais les modifs pour la période 2.
pour la période 3, c'est pareil :
Sub Macro()
On Error Resume Next
For i% = 9 To Sheets.Count
Sheets(i).Select
Range("C8:C20").Copy Destination:=Range("E8:E20")
For Each o In Range("F8:F20")
F = o.FormulaLocal
Mid(F, 9, 1) = "3"
o.FormulaLocal = F
Next
Next
End Sub
enjoy...
peperon
 Posté le 04/03/2009 à 15:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Super le copier coller fonctionne mais j'ai encore un problème ...

Il y a un décalage de 2 cellules. Elle recommence à "periode2!D5" au lieu de commencer à "periode2!B5"

J'ai essayé avec l'adressage absolu c'est à dire , en mettant des $$ à "période2!$B$5", là ca fonctionne.

Mais comment faire pour mettre cet adressage (F4) sur toutes les cellules de P1 pour tous les élèves.

Merci pour vos lumières ...

Bérylion
 Posté le 05/03/2009 à 10:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

peperon a écrit :

Super le copier coller fonctionne mais j'ai encore un problème ...

Il y a un décalage de 2 cellules. Elle recommence à "periode2!D5" au lieu de commencer à "periode2!B5"

J'ai essayé avec l'adressage absolu c'est à dire , en mettant des $$ à "période2!$B$5", là ca fonctionne.

Mais comment faire pour mettre cet adressage (F4) sur toutes les cellules de P1 pour tous les élèves.

Merci pour vos lumières ...

Salut

bon, ce bout de code te fait la "totale" :

Sub test()

On Error Resume Next

For i% = 9 To Sheets.Count
Sheets(i).Select

For Each o In Range("C8:C20")
adR = Right(o.FormulaLocal, Len(o.FormulaLocal) - InStr(1, Right(o.FormulaLocal, Len(o.FormulaLocal)), "!"))
adA = Range(adR).AddressLocal(RowAbsolute:=False, columnAbsolute:=True)
o.Replace What:=adR, Replacement:=adA
Next

Range("C8:C20").Copy Destination:=Range("E8:E20")

For Each o In Range("E8:E20")
F = o.FormulaLocal
Mid(F, 9, 1) = "2"
o.FormulaLocal = F
Next
Next

End Sub

ça boucle à partir de la 9eme feuille jusqu'a la dernière.

la 1ere boucle te fait le chgt d'adressage relatif en absolu, et la 2eme te change le nom de la feuille dans la formule.

c'est assez lourd comme procédure, mais j'ai pas le temps d'essayer d'optimiser (ça fonctionne, tu devras t'en contenter )

peperon
 Posté le 05/03/2009 à 14:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Je vais regarder à cela...

Je te tiens au courant ... en tout cas , merci pour le temps passé à résoudre mon problème

Publicité
peperon
 Posté le 09/03/2009 à 10:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Je viens de tester ton petit code, il fonctionne très bien pour la première feuille (sheet 10) par contre il ne boucle pas jusque la fin.

Peux tu venir à mon secours ?

Bérylion
 Posté le 09/03/2009 à 15:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

peperon a écrit :

Je viens de tester ton petit code, il fonctionne très bien pour la première feuille (sheet 10) par contre il ne boucle pas jusque la fin.

Peux tu venir à mon secours ?

bin, ça dépend ??!

ça coince ou chez toi ?

paske chez moi, ça roule tout seul...

peperon
 Posté le 09/03/2009 à 20:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Ca fonctionne pour le 1er eleve l, les suivants ca ne fonctionnent pas...

Vraiment désolé de t'ennuyer ... tu dois me prendre pour un super incompétent

Bérylion
 Posté le 10/03/2009 à 08:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

re-

t'as essayé mon fichier ? ça boucle bien sur toutes les feuilles...

j'ai juste retaillé un peu le code en rajoutant une condition pour ne pas traiter les cellules sans formule :

Sub macro()

On Error Resume Next

For i% = 9 To Sheets.Count

Sheets(i).Select

For Each o In Range("C8:C20")
If o.HasFormula Then
adR = Right(o.FormulaLocal, Len(o.FormulaLocal) - InStr(1, Right(o.FormulaLocal, Len(o.FormulaLocal)), "!"))
adA = Range(adR).AddressLocal(RowAbsolute:=False, columnAbsolute:=True)
o.Replace What:=adR, Replacement:=adA
End If
Next

Range("C8:C20").Copy Destination:=Range("E8:E20")

For Each o In Range("E8:E20")
F = o.FormulaLocal
Mid(F, 9, 1) = "2"
o.FormulaLocal = F
Next

Next

End Sub

ça dit quoi ?...

peperon
 Posté le 11/03/2009 à 08:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Ben désolé, ca boucle que sur le premier nom, même ton fichier ...

J'ai excel 2003, as tu une idée sur comment résoudre ce problème ?

Bérylion
 Posté le 11/03/2009 à 09:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

re-

nan.

ça fonctionne chez moi (sous excel10 certes, mais ça change rien) donc je vois pas pourquoi ça bouclerait pas chez toi.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
29,99 €XIAOMI Mi TV Stick à 29,99 €
Valable jusqu'au 27 Octobre

Cdiscount propose en exclusivité la nouvelle version de la clé HDMI XIAOMI Mi TV Stick à 29,99 €. Cette clé HDMI à brancher sur votre TV possède un processeur quadricoeur, 1 Go de RAM et 8 Go d'espace de stockage, le WiFi et le bluetooth. Elle intègre un Chromecast, est compatible Dolby et DTS et est fournie avec une télécommande qui peut être pilotée à la voix. Elle tourne sous Android TV 9.0 et vous allez pouvoir voir facilement Prime Video, Netflix, Disney+, YouTube, Spotify, Moltov, ... sur votre TV Full HD.


> Voir l'offre
16,99 €Ensemble clavier + souris Logitech MK120 à 16,99 €
Valable jusqu'au 28 Octobre

Amazon fait une promotion sur l'ensemble clavier + souris sans fil Logitech MK120 qui passe à 16,99 € alors qu'on le trouve habituellement autour de 25 €. Ce duo combine simplicité, confort, et prix attractif. Le clavier, silencieux, présente des touches à l'écriture particulièrement lisible et au design ultra-plat, couplées à une barre espace suffisamment incurvée pour améliorer la position de vos mains pendant que vous l'utiliserez. Résistant aux éclaboussures, il saura se protéger des accidents éventuels. Quant à la souris 3 boutons, nécessitant elle aussi un port USB pour fonctionner, elle se présente sous une forme ambidextre qui satisfera le plus grand nombre. Si vous ne souhaitez pas de fil, tournez-vous vers le modèle MK270 à 24,99 €.


> Voir l'offre
42,99 €Casque Audio Logitech G432 à 42,99 €
Valable jusqu'au 28 Octobre

Amazon fait une promotion sur casque Logitech G432 qu'il propose à 42,99 € alors qu'on le trouve ailleurs à partir de 79 €. Ce casque dédié aux joueurs est compatible PC, Xbox, PS4 et Switch. Il possède un micro antiparasite qui pivote, un réglage de volume directement sur le fil et offre un son surround Dolby DTS Headphone 7.1. Connexion par USB ou jack 3.5 mm. La livraison est gratuite.


> Voir l'offre

Sujets relatifs
Recopie cellule par macro
Macro pour créer un Gencode sur Excel - EAN 18
creer une macro(bis)
creer une macro
macro vba valeur maximale
Créer une Macro dans Word 2010
Créer une macro convertir en PDF
creer une macro avec des variables
macro creer par enregistrement Resultat bizarre
Creer une macro - excel
Plus de sujets relatifs à Créer une macro qui recopie une valeur
 > Tous les forums > Forum Bureautique