Résolu bonjour comment lancer la copie d une ligne en fonction du resulta d une cellule

moilolo0404

Expert
bonjour si la cellule a2 contient 2 la ligne 2 sera copier ex: a2=2 donc c2: az2 sera copier sur bn2: dk2 avec possibilité de changer les référence de copie svp merci de votre aide
 

drul

Obscur pro du hardware
Staff
Salut,
Rien de compliquer, mais ton descriptif est très peu clair ...
si on met 3 ça doit copier quoi ?
 

moilolo0404

Expert


 

moilolo0404

Expert
bonjour Drul
Code:
a2 comme les plages de copie ne son pas fixe et doivent pouvoir être modifier suivant besoin  et pour répondre a votre question en fonction de l exemple 
donc  si je donne a la cellule a2 la valeur 2 c'est égal a ligne 2 si 3 ligne 3 ainsi de suite et pour les plage de copie qui doivent reste modulable pour l exemple a2 contient 2 donc en ligne 2 on copie le contenue de c2:az2 vers bn2:dk2  qui aurai pue être d2:ba2 vers bn2:dk2 ou c2:az2vers bo2:dl2  
merci d essayer de m aider
 

moilolo0404

Expert
manuellement le plus souvent en rapport a la lecture de mon fichier peu être est t il possible partant d une feuil vide de définir une cellule qui servirai a donner la valeur de a2 et deux autres ,l'une dans qu' elle j indiquerai les plage a copier et l autre la plage a coller
la copie ce lancera automatiquement au changements de la valeur de la cellule a2
uniquement si les plage de copie on était renseigner donc il faudrait qu' après chaque copie les cellule prévue a cette effet reviennent a zéro
 

drul

Obscur pro du hardware
Staff
Ok, commence par définir clairement tes cellules sources et destination, après on pourra pondre un peu de code ;)
répond à ces questions:
Quelle cellule pour la source ?
Quelle cellule pour la destination ?
Quelle format pour les cellule sources et destination ?
Comment lancer la macro ?

N.B. il serait aussi possible au lancement de la macro de demander (inputbox) la plage source et destination ...
 

moilolo0404

Expert


 

moilolo0404

Expert
sur mon fichier a2 est représente par sh13 et c'est le changement de valeur de sh13 qui déclenchera la copie et c la valeur de sh13 qui indique la ligne de copie
les cellule a copier ht15:qi108
les cellule copier vont tj15:aby108
le format est standard il est question que de nombre entier
ce code trouver place sur la feuil déclenchera la copie si je ne me trompe pas

[Private Sub Worksheet_Change(ByVal Target As Range)]
[If Not Intersect(Target, Range("A1")) Is Nothing Then)]
[Call FormatTab]
[End If]
[End Sub]


 

drul

Obscur pro du hardware
Staff
Oui le code sera lancer chaque fois que la cellule "A1" change, mais je n'ai toujours pas compris comment savoir quelles données tu veux copier
Essaye d'être plus synthétique et donne moi une "formule" précise de ce que tu veux copier et ou tu veux le copier.
Chaque exemple que tu me donnes est différent du précédent, mais rien n'explique d'ou viennent ces données ...

 

moilolo0404

Expert
bonjour
merci d essayer de comprendre
les cellule a copier ht15:qi108 (c la taille du tableau ou son les données )
les cellule copier vont sur tj15:aby108 (c la taille du tableau on serons écrite les données)
sh13 et un compteur a chaque nouvel ligne utilisé 1 s ajoute a sh13
donc si sh13 =1;ht15:qi15 sera copier sur tj15:aby15
si sh13=2;ht16:qi16 sera copier sur tj16:aby 16
chaque cellule de ht15:qi15 contient une formule de condition que j ai étiré vers le bas jusqu'à qi108,si la condition est respecte le résulta s affiche et c'est ces résulta que je veut copier en fonction de la valeur de sh13
ce que je veut c'est avoir la possibilité de pouvoir choisir la zone ou copier les donne et pouvoir choisir la ligne de copie
il faudrait que la copie soit en automatique comme définie et pour l étude que je sui en train de faire que je puisse définir manuellement la valeur sh13 et la plage ou envoyer les donnée copier
 

drul

Obscur pro du hardware
Staff
En très basique, sans aucun garde fou:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$SH$13" Then
    Range(Cells(14 + Target.Value, "ht"), Cells(14 + Target.Value, "qi")).Copy Cells(14 + Target, InputBox("Première colonne de destination ? (p.ex: TJ)", "Destination"))
End If
End Sub
 

moilolo0404

Expert
merci je dépose le code sur un module donc ? je débute ou sur la feuil concerné svp
merci de votre aide
 

drul

Obscur pro du hardware
Staff
Sur la feuille concernée
Dans un module ça marchera pas.

N.B. utilise le tutoiement je préfère
 

moilolo0404

Expert
j ai dépose le code sur la feuil je remplace 1ier colonne de destination par TJ donc et destination pas 14 c bien ou ?
pourrai tu expliquer le code
stp et merci pour ce qui est fait
 

drul

Obscur pro du hardware
Staff
Le code fais:
- Si un changement à lieu en SH13
- Alors, on demande via une inputbox la colonne de destination
- On copie les valeurs des colonnes "ht:qi" ligne (14 + valeur dans SH13) dans la colonne spécifiée par la inputbox et suivante

Essaie le code ...
 

moilolo0404

Expert
non si un changement en sh13 a lieu
On copie les valeurs des colonnes "ht:qi" ligne 14 mes pas la valeur de sh13 qui est la uniquement pou déclencher la copie
j ai dépose le code mes rien ne c passe
 

drul

Obscur pro du hardware
Staff
Tu as pas l'Inputbox qui vient quand tu modifie la valeur en SH13 ?



Quand je lis ça moi je comprend qu'il faut utiliser la valeur en SH13 pour déterminer quelle ligne on veut copier ...
 

moilolo0404

Expert
oui c exact c sh13 qui détermine la ligne a copie c juste que lorsque la copie est effectue la valeur de sh13 ne doit pas l être vue que par inputbox ,c moi qui vais indiquer la plage on vont être copier les données
le code une fois pose sur la feuille ne réagie pas j ai essayer c normal ?
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 088
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut