Action Conditionnel (Copier coller)

bloomby

XLDnaute Occasionnel
Bonjour à tous,

J'essai de trouver la façon de résoudre le problème suivant

Si la Cellule A3 Change,
Copier Les cellules A3,B3,C3 & Range A11:19,B11:19
vers la Sheet2
Dans les cellules A3,B3,C3 & Range A11:19,B11:19

Cela ce complique lorsque la Cellule L3 Change
Copier Les cellules L3,M3,N3 & Range L11:19,M11:19
vers la Sheet2
Dans les cellules A3,B3,C3 & Range A11:19,B11:19

Même principle avec la Cellule W3
Copier vers la Sheet2 dans les cellules A3,B3,C3 & Range A11:19,B11:19

Le principle continue 20 fois, donc jusqu'à GQ

J'ai fait un Exemple:
Le projet2 Cellule L3 vient de changer de No à Yes

Je joins un fichier avec les informations,
ainsi qu'un exemple

merci
 

Pièces jointes

  • Action.zip
    22.1 KB · Affichages: 36
  • Action.zip
    22.1 KB · Affichages: 39
  • Action.zip
    22.1 KB · Affichages: 38

JNP

XLDnaute Barbatruc
Re : Action Conditionnel (Copier coller)

Bonjour Bloomby :),
Une petite événementielle dans ta feuille 1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column Mod 11 <> 1 Or Target.Row <> 3 Then Exit Sub
MsgBox ("Cellule " & Target.Address)
End Sub
ne tiendra compte que des cellules qui t'intéresse. Avec l'addresse, tu peux en déduire les zones à copier/coller.
Bonne journée :cool:
 

bloomby

XLDnaute Occasionnel
Re : Action Conditionnel (Copier coller)

Bonjour JNP merci pour la piste de solution
et merci à toi PierreJean pour avoir créer le fichier. c'est ce que je cherchais
par contre cela ne fait pas ce que j'aurais pensé

C'est à dire; la cellule en question ne change pas manuellement mais c'est plutôt un calcul qui est fait. Pour cette raison à l'aide du forum nous avions créer un code qui nous permettais de palier ce problème. Dernièrement LedZepFred nous à d'ailleurs aider à ce sujet.

Le code suivant Envoi un Email et Un Msg Box: j'aimerais ajouter la partie de PierreJean à ce dernier

Premier Code:
HTML:
Private Sub Worksheet_Calculate()
Dim M(20) As String
Dim i, j As Integer
Dim ol As Object
Dim olmail As Object
Dim CurrFile As Object
Dim Msg, Style, Title, Response
Set ol = CreateObject("Outlook.Application")
Set olmail = ol.CreateItem(0)
j = 1
For i = 1 To 201 Step 11
    If Cells(3, i) <> M(j) Then '1
        M(j) = Cells(3, i)

    With olmail
        .To = "timeislimite@hotmail.com"
        .Subject = Cells(3, i)
        .Body = ": " & Cells(3, i + 1) & "   : " & Cells(3, i + 2)
       ' .Attachments.Add "c:\data\essai.doc"
         '.Send
         .display
    'Debug.Print PlaySoundFileA("C:\Windows\Media\tada.wav")
    
    Call Sounds
    Msg = ": " & Cells(3, i + 1) & "   : " & Cells(3, i + 2)
    Style = vbYesNoCancel + vbQuestion + vbDefaultButton1
    Title = Cells(3, i)
    Response = MsgBox(Msg, Style, Title)
    End With
    Exit For
    End If
j = j + 1
Next
End Sub

Code de PierreJean et JNP à ajouter

HTML:
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column + 10) Mod 11 = 0 And Target.Row = 3 Then
  Range(Target, Target.Offset(0, 3)).Copy Destination:=Sheets("Sheet2").Range("A3")
  Range(Target.Offset(8, 0), Target.Offset(16, 1)).Copy Destination:=Sheets("Sheet2").Range("A11")
End If
End Sub

merci Bloomby
 
Dernière édition:

bloomby

XLDnaute Occasionnel
Re : Action Conditionnel (Copier coller)

Bonjour à tous,
j'ai essayé plusieurs façon dont la suivante:

For i = 1 To 201 Step 11
If Cells(3, i) <> M(j) Then '1
M(j) = Cells(3, i)

If (M(j) + 10) Mod 11 = 0 And Target.Row = 3 Then
Range(Target, Target.Offset(0, 3)).Copy Destination:=Sheets("Sheet2").Range("A3")
Range(Target.Offset(8, 0), Target.Offset(16, 1)).Copy Destination:=Sheets("Sheet2").Range("A11")
End If

Mais pour l'instant cela ne fonctionne pas.
la valeur M(j) est t'elle à la bonne place ou c'est la fonction qui n'est pas valable
 

JNP

XLDnaute Barbatruc
Re : Action Conditionnel (Copier coller)

Re :),
Le problème est que la procédure
Code:
Private Sub Worksheet_Calculate()
se déclenche à chaque calcul de feuille, mais ne te passe aucune indication sur quelle cellule a changé... Logique car si 200 cellules éparpillées sont recalculées en même temps, que pourrait-il t'indiquer ?
Tu pourrais peut-être utiliser une série pour identifier celle qui a changé (du style chaque cellule vrai vaut 1, tu additionnes chacune en multipliant à chaque fois par 2 en plus, soit tu obtiens 1 + 2 + 4 + 8 + 16... ce qui te permet d'après une valeur unique de savoir laquelle a changé) ?
Bon courage :cool:
 

bloomby

XLDnaute Occasionnel
Re : Action Conditionnel (Copier coller)

Bonjour à tous,

Je refais une intervention car après plusieurs temps de recherche je n'est toujours pas la solution; présentement j'ai créer 20 différentes pages dans lesquels il y a un calcul...
Par contre, cela est loin d'être optimal.

Ce que je cherche à faire: Lorsqu'il y a une cellule précise qui change (via un cacul ex: =A1+A2) cela actionne une macro précise
De la sorte, de B1 à B19 il y a des calcul; lorsque B19 change cela actionne la macro sub19 alors que lorsque B12 change cela actionne la macro sub12 ....

Si quelqu'un aurait une nouvelle solution;
merci de m'en faire part

Bloomby
 

pierrejean

XLDnaute Barbatruc
Re : Action Conditionnel (Copier coller)

Re
Petit essai de declanchement de macros a partir de cellules dont la formule contient l'adresse de la cellule ayant changé
Vois si tu peux adapter les macros en module1 et sheet3
Attention au mode d'ecriture des formules
 

Pièces jointes

  • Action.zip
    28.1 KB · Affichages: 32
  • Action.zip
    28.1 KB · Affichages: 35
  • Action.zip
    28.1 KB · Affichages: 28

bloomby

XLDnaute Occasionnel
Re : Action Conditionnel (Copier coller)

Bonjour forum, PierreJean,

merci de votre aide,

Présentement je ne suis pas en mesure d'utiliser worksheet_change adéquatement
car la cellule n'est pas changé manuellement ---) le changement est fait via une macro qui s'update avec l'aide d'un timer ce qui fait varier certaines cellules critiques.

De sorte qu'il n'y a aucun véritable changement manuel qui est fait !
Je me questionne donc a savoir quel sont mes options...

merci
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Action Conditionnel (Copier coller)

Re
puisque le changement provient d'une macro ,cette derniere sait quelle(s) cellule(s) elle vient de modifier. Il suffit alors d'en noter l'adresse puis en fin de macro lancer la macro adequate via un (ou des) Application.Run ou un Call
Est-il possible d'avoir un fichier exemple ?
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia