> 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
GratuitJeu PC Cave Story+ gratuit
Valable jusqu'au 10 Décembre

Epic Game Store offre actuellement le jeu PC Cave Story+. Une histoire originale débordante de personnalité, de mystère et d'amusement sur un rythme rapide. Courez, sautez, tirez, volez, et trouvez votre chemin en découvrant cette énorme aventure rappelant les classiques des jeux 8 et 16-bit ! Jeu en anglais.


> Voir l'offre
26,99 €Clavier sans fil Microsoft All in One avec pad intégré à 26,99 €
Valable jusqu'au 06 Décembre

Amazon fait une promotion sur le clavier Microsoft All in One qui passe à 26,99 € au lieu de 39 €. Ce clavier sans fil (jusqu'à 9 mètres) est idéal pour piloter un ordinateur à distance puisqu'il intègre un touchpad pour contrôler également la souris. Léger, solide et résistant aux éclaboussures, il comporte de nombreuses touches multimédia personnalisables. Il est garanti 3 ans. La livraison est gratuite.


> Voir l'offre
99,99 €Kit de 32 Go (2 x 8 Go) de mémoire DDR4 PNY XLR8 3200 MHz à 99,99 €
Valable jusqu'au 07 Décembre

Cdiscount fait une promotion sur le kit de 32 Go (2x8 Go) de mémoire DDR4 PNY XLR8 3200 MHz CL16 qui passe à 99,99 € alors qu'on le trouve ailleurs à plus de 140 €.


> 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