XL 2013 probleme sur Worksheet_Change

FifiSt

XLDnaute Nouveau
bonjour,

je suis venue vous demander de l'aide après des heures de recherches ….rien
impossible de faire fonctionner mon Worksheet_Change
je souhaite lorsque l'on complete ou modifie les onglets projets A ou B.;;;
que cela modifie mon onglet LISTE DES REF

Je vous joint mon fichier
Merci beaucoup pour toute l'aide
 

Pièces jointes

  • Développement.xlsm
    168.6 KB · Affichages: 13

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Fifist,
J'ai l'impression que vous traitez les Worksheet_Change à l'envers.
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim xFound As Boolean
'Seule la zone est concernée
    If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
Ici vous faites le traitement si un changement a eu lieu n'importe où sauf en colonne D:D.
Je pense que c'est le contraire que vous vouliez faire.
Code:
Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D:D")) Is Nothing Then
    MsgBox "Vous avez cliqué sur la cellule " & Target.Address
End If
End Sub
Ici la MsgBox s'ouvre uniquement si on clique dans la colonne D.D ( voir PJ )
 

Pièces jointes

  • Classeur11.xlsm
    17.9 KB · Affichages: 5

jmfmarques

XLDnaute Accro
Bonjour
Je n'ai pas (je ne le fais jamais) ouvert le classeur joint, mais :
- quitter si pas d'intersection ou continuer si intersection est la même chose
- je vois par contre (copie de code montrée par silvanu) un "on error resume next" qui est très probablement la cause de maux du fait de lignes de code plus bas ... ;)
 

job75

XLDnaute Barbatruc
Bonjour FifiSt, sylvanu, jmfmarques,

La feuille source étant la feuille active, exécutez cette macro :
VB:
Sub Transfert()
Dim F As Worksheet, i As Long, j As Variant
Set F = Sheets("LISTE DES REF")
With ActiveSheet.UsedRange
    For i = 8 To .Rows.Count
        If .Cells(i, 1) <> "" And Not .Cells(i, 1).HasFormula Then
            j = Application.Match(.Cells(i, 1), F.Columns(1), 0)
            If IsNumeric(j) Then
                F.Cells(j, 20) = .Cells(i, 4)
                F.Cells(j, 24) = .Cells(i, 5)
                F.Cells(j, 25) = .Cells(i, 6)
            End If
        End If
    Next
End With
End Sub
A+
 

Discussions similaires

Réponses
4
Affichages
283
Réponses
13
Affichages
346

Statistiques des forums

Discussions
312 104
Messages
2 085 334
Membres
102 864
dernier inscrit
abderrashmaen