verrouillage ligne

Anabelle

XLDnaute Nouveau
Bonjour,

voici pourquoi j'ai besoin de vous:
je développe deux matrices, chacune sur 1 feuille, même fichier.

Dans la première matrice se trouvent une colonne info1, info 2, info 3.
Dans la seconde matrice se trouvent une colonne info 1 (identique à celle de la feuille 1), info 2bis, info 3bis.

1) Lorsque je rentre l'info 1 sur la feuille 1, j'aimerais que la colonne info 1 de la feuille 2 soit rentrée automatiquement.
2) Lorsque j'effectue un changement sur les lignes de la feuille 1 (par exemple tri croissant ou décroissant), j'aimerais que l'ensemble de la ligne se situant en feuille 2 change et non pas seulement la colonne info 1.

Je joins une matrice pouvant être utilisée pour résoudre ce problème.

Je vous remercie de l'aide que vous m'apporterez,
Cdt Anabelle
 

Pièces jointes

  • exemple.xls
    25.5 KB · Affichages: 56
  • exemple.xls
    25.5 KB · Affichages: 55
  • exemple.xls
    25.5 KB · Affichages: 56

job75

XLDnaute Barbatruc
Re : verrouillage ligne

Bonjour Anabelle, bienvenue sur XLD,

Désolé du retard, je n'avais pas vu votre post...

Voyez le fichier joint.

Pour voir les codes des macros, touches Alt+F11 puis double-cliquez en haut à gauche sur les feuilles suivantes :

- Module 1 :

Code:
Public derlig As Long, tablo1, tablo2 'mémorise les variables

- ThisWorkbook :

Code:
Private Sub Workbook_Open()
With Sheets("Feuil2")
  derlig = .Range("B65536").End(xlUp).Row
  tablo1 = Application.Transpose(.Range("B3:B" & derlig))
  tablo2 = .Range("C3:D" & derlig)
End With
End Sub

- Feuil2 :

Code:
Private Sub Worksheet_Activate()
Dim i
Application.ScreenUpdating = False
Sheets("Feuil1").[B3:D65536].Copy [B3]
[C3:D65536].ClearContents
derlig = [B65536].End(xlUp).Row
For lig = 2 To derlig
  i = Application.Match(Cells(lig, "B"), tablo1, 0)
  If IsNumeric(i) Then
    Cells(lig, "C") = tablo2(i, 1): Cells(lig, "D") = tablo2(i, 2)
  End If
Next
tablo1 = Application.Transpose(Range("B3:B" & derlig))
tablo2 = Range("C3:D" & derlig)
End Sub

Attention : si vous copiez ces macros dans un autre fichier, n'activez pas la Feuil2, enregistrez et fermez d'abord le fichier, puis rouvrez-le.

A+
 

Pièces jointes

  • exemple(1).zip
    13.6 KB · Affichages: 31
  • exemple(1).zip
    13.6 KB · Affichages: 24
  • exemple(1).zip
    13.6 KB · Affichages: 30

job75

XLDnaute Barbatruc
Re : verrouillage ligne

Bonsoir Anabelle,

J'ai été cherché midi à quatorze heures.

Effacez tous les codes, et mettez uniquement dans le code de Feuil2 :

Code:
Private Sub Worksheet_Activate()
Dim derlig As Long, tablo1, tablo2, lig As Long, i
Application.ScreenUpdating = False
derlig = [B65536].End(xlUp).Row
tablo1 = Application.Transpose(Range("B3:B" & derlig))
tablo2 = Range("C3:D" & derlig)
Sheets("Feuil1").[B3:D65536].Copy [B3]
[C3:D65536].ClearContents
For lig = 3 To [B65536].End(xlUp).Row
  i = Application.Match(Cells(lig, "B"), tablo1, 0)
  If IsNumeric(i) Then
    Cells(lig, "C") = tablo2(i, 1): Cells(lig, "D") = tablo2(i, 2)
  End If
Next
End Sub

Fichier (2) joint.

A+
 

Pièces jointes

  • exemple(2).zip
    12.5 KB · Affichages: 29
  • exemple(2).zip
    12.5 KB · Affichages: 29
  • exemple(2).zip
    12.5 KB · Affichages: 30
Dernière édition:

Discussions similaires

Réponses
9
Affichages
555
Réponses
5
Affichages
170

Statistiques des forums

Discussions
312 492
Messages
2 088 912
Membres
103 983
dernier inscrit
AlbertCouillard