Copier coller sous VBA

Fermé
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013 - 13 sept. 2013 à 11:38
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013 - 16 sept. 2013 à 11:38
Bonjour,

J'ai crée une petite macro pour copier coller des cellules d'un tableau à un autre sauf que ca marche pas comme je voudrai.

voici la macro

Sub copier_coller()

For vitesse = 1 To 8
For terme = 1 To 10
For i = 0 To 7
With Worksheets("BLACK-BOOK")
Cells(41 + 43 * (vitesse - 1), 15).Select
Selection.Copy
Sheets("BLACK-BOOK").Activate
Cells(434, 6 + 6 * i).Select
ActiveSheet.Paste


End With
Next i
Next terme
Next vitesse
End Sub

alors ce que je veux c'est copier les cellules (41,15) puis (41+43,15) ... et les coller dans l'ordre la cellule (41,15) dans la cellule (434,6) puis (41+43,15) dans (434,6+6*1) ...etc

avec cette macro il copie que la derniere cellule c'est a dire (41+43*(8-1),15) et la colle dans toutes les cellule (434,6+6*i) !!

Pourriez vous m'aider la dessus ??

Merci d'avance

8 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
13 sept. 2013 à 12:02
Bonjour,

Si je comprends bien tes explications, tu dois pouvoir te contenter de
Sub copier_coller()
Dim vitesse As Byte
For vitesse = 0 To 7
With Worksheets("BLACK-BOOK")
Cells(41 + 43 * vitesse, 15).Copy
ActiveSheet.Paste Destination:=Cells(434, 6 + 6 * vitesse)
End With
Next vitesse
End Sub
A+
0
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
13 sept. 2013 à 13:46
Merci beaucoup pour ton aide ca marche parfaitement
0
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
13 sept. 2013 à 13:49
mais je voudrai comprendre le As Byte c est quoi l'interet
0
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
13 sept. 2013 à 14:22
j'ai encore un probleme ...
Lors du collage les cellules copié contiennent des formules qui changent quand je colle!
j'explique par exemple pour la cellule (41,15) sa formule est : =0,000428321989299453*N39 ^ 6 + -0,00596830985295159*N39 ^ 5 + 0,0304432402215616*N39 ^ 4 + ...

et quand j applique la macro le N39 change mais comme je voudrai.en effet je souhaite en fait que toutes les cellule que je vais copier et coller ont le meme cellule qui va remplacer le N39 pour chaque vitesse ... je sais pas si c'est clair.

c'est a dire quand je colle la premier cellule (41.15) je veut par exemple elle devient
: =0,000428321989299453*D432 ^ 6 + -0,00596830985295159*D432^ 5 + 0,0304432402215616*D39 ^ 4 + ...

et pour la deuxieme cellule (41+43,15) la meme avec des coeff different
=0,000422926446615346*D432 ^ 6 + -0,00497724132283774*D432 ^ 5 + 0,0208181663893719*D432 ^ 4 ...

et cela pour chaque vitesse.. sachant que pour la vitesse d'apres ca sera D432 décaler de 6 colonne et pour celle d'apres decaler de 6 colonne mais sur la meme ligne 432 ...

j'espere j'étais clair

Merci d'avance
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
13 sept. 2013 à 15:05
La ligne Dim vitesse As Byte sert à déclarer le type de la variable "vitesse".
Ce type doit être adapté au mieux à la variable utilisée.
La valeur de la variable étant un entier de valeur 0 à 7, tu peux définir un type Byte (limité à 255 maxi). J'aurais pu choisir un type Integer, Long ou Variant mais ce choix n'aurait pas été optimum.

Pour ton second problème, je dois t'avouer que je n'ai pas bien compris.
En l'état actuel, le programme copie des formules qui contiennent des adresses relatives.
O41 contient une formule avec N39.
Quand tu copies O41 dans F434, l'adresse devient normalement E432.
Ce n'est pas ce que cherche à faire ?

A+
0
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
13 sept. 2013 à 15:20
voici un fichier de travail model j'ai ecrit un commentaire tout en bas de la ligne 434 je pense ca t'aidera mieux a comprendre ce que je cherche

http://cjoint.com/13sp/CInptHrwc4O.htm

Merci
0
Le Pingou Messages postés 12155 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 septembre 2024 1 448
13 sept. 2013 à 23:16
Bonjour,

Désolé, erreur de poste.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
14 sept. 2013 à 08:12
Bonjour,

Si j'ai bien compris :
Le débit à 100% (N41) doit être copié en E434, soit Cells(434,5) =Cells(41,14)
Le débit à 90% (N84) doit être copié en K434 soit Cells(434,5+6) =Cells(41+43,14)
Le débit à 80% (N127) doit être copié en Q434 soit Cells(434,5+2*6) =Cells(41+2*43,14)
Etc... jusqu'au débit mini (7 valeurs de débit au total).

Sub copier_coller()
Dim vitesse As Byte
For vitesse = 0 To 7
With Worksheets("BLACK-BOOK")
Cells(41 + 43 * vitesse, 14).Copy
ActiveSheet.Paste Destination:=Cells(434, 5 + 6 * vitesse)
End With
Next vitesse
End Sub

A+
0
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
14 sept. 2013 à 10:33
non pas tout a fait la condition n'est pas sur le debit, mais les 5 autres parametres qui suivent le debit pour chaque vitesse ( HMT, Potot, P&tot, P2 et N) ces parametre sont écrit en fonction du debit. et quand on les copie et on les colle bah la case débit change... il faut que quand on les colle il faut qu'ils soient en fonction de la nouvelle case du débit c'est a dire :
Pour 100% : dans toutes les formule des 5 param doivent etre ecrit avec E434
( Hmt =0,0132557860879696*E434 ^ 6 + -0,188882303786579*E434 ^ 5...
Potot =0,217578109574416*E434 ^ 6 + -3,01387999639787*E434 ^ 5 (DANS LA FORMLULE ACTUELLE Potot est =0,217578109574416*P434 ^ 6 + -3,01387999639787*P434 ^ 5...)
donc voila faut que les 5 param soit ecrit en fonction du meme debit pour chaque vitesse...

J'espere j'etais clair cette fois ci

A plus
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
15 sept. 2013 à 09:29
Le plus simple, c'est de copier les valeurs
Sub copier_coller()
Dim vitesse As Byte
For vitesse = 0 To 7
With Worksheets("BLACK-BOOK")
Cells(41 + 43 * vitesse, 15).Copy 'Hmt(mCE)
Cells(434, 6 + 6 * vitesse).PasteSpecial xlPasteValues
Cells(41 + 43 * vitesse, 5).Copy 'P0tot
Cells(434, 7 + 6 * vitesse).PasteSpecial xlPasteValues
Cells(41 + 43 * vitesse, 11).Copy 'P1tot
Cells(434, 8 + 6 * vitesse).PasteSpecial xlPasteValues
Cells(41 + 43 * vitesse, 12).Copy 'P2
Cells(434, 9 + 6 * vitesse).PasteSpecial xlPasteValues
Cells(41 + 43 * vitesse, 13).Copy 'N
Cells(434, 10 + 6 * vitesse).PasteSpecial xlPasteValues
End With
Next vitesse
End Sub
A+
0
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
16 sept. 2013 à 09:25
merci Cyrus pour ta réponse mais effectivement ca aurait été plus simple de copier que les valeurs mais justement moi j'ai besoin de copier la derniere ligne dans un autre fichier et faut que je distingue la variation des parametres quand je change le debit...
0
Le Pingou Messages postés 12155 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 septembre 2024 1 448
15 sept. 2013 à 15:46
Bonjour messin57000,
C'est vraiment dommage que ce qui suit ne vous a servi à rien et pourtant une légère modification et cela fonctionne sur votre fichier.
Remplacer votre ligne d'instruction par le bloc de lignes suivant:
With Sheets("BOOK")
For c = 1 To 4
.Cells(27, c + 3).FormulaLocal = "=" & Cells(6, c + 10).Value & "*N26^6+" & Cells(7, c + 10).Value & "*N26^5+" _
& Cells(8, c + 10).Value & "*N26^4+" & Cells(9, c + 10).Value & "*N26^3+" & Cells(10, c + 10).Value & "*N26^2+" _
& Cells(11, c + 10).Value & "*N26^1+" & Cells(12, c + 10).Value
Next c
End With

Bon dimanche

0
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
16 sept. 2013 à 09:30
non pas du tout ca les valeur des case N26 c'est pas les bon et la ligne 27 aussi donc ca colle pas au fichier... et meme si j'essaye d'adapter au fichier le probleme est le meme c'est ecatement ce qu'on fait à ce jour mais le probleme c'est que les valeurs changent qd on copie colle la ligne dans un autre fichier
0
Le Pingou Messages postés 12155 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 septembre 2024 1 448
16 sept. 2013 à 10:12
Bonjour,
Eh bien là je ne vais pas insisté si vous n'arrivez pas à comprendre, c'est comme .... :
https://www.commentcamarche.net/infos/25855-charte-d-utilisation-de-commentcamarche-net-respect-d-autrui/
Salutations
Le pingou

0
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
16 sept. 2013 à 11:38
Je pense il y'a un mal entendu je comprends pas pourquoi vous m'envoyer le lien...
Je pense pas vous avoir manquer du respect au contraire , je m'excuse si vous vous etes fais des idées le but quand meme c'est d'arriver au but voulu, c'est pas par plaisir que je conteste mais j'essaye d'éxpliquer ce que je veux, je m'exprime tres mal peut etre mais j'ai pas encore obtenus le résultat voulu...
Je vous remerci quand même pour votre aide
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
16 sept. 2013 à 10:40
Bonjour,

Pourquoi cherches-tu à utiliser une macro pour reporter les formules en ligne 434 ?
Tu pourrais placer ces formules une fois pour toute dans les cellules de la ligne 434 avec les adresses des coefficients correspondant aux débits.
Exemple pour la Hmt avec un débit à 100% :
=$AI$8 *$E$434 ^ 6 + $AI$9 *$E$434^ 5 + $AI$10 *$E$434^ 4 + $AI$11 *$E$434^ 3 + $AI$12 *$E$434^ 2 + $AI$13 *$E$434^ 1 + $AI$14

A+
0
Le Pingou Messages postés 12155 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 septembre 2024 1 448
16 sept. 2013 à 11:04
Bonjour Gyrus,
Juste en marge... !
Le l'ai déjà proposé dans un autre poste (même sujet), il n'en veux pas car une centaines de fichiers... !
Bon courage.
Salutations
Le pingou
0