Microsoft 365 Synchroniser et afficher nommbre

Claudiuss

XLDnaute Nouveau
Bonjour à tous,

Encore un petit soucis. j'ai un tableau compose de nombres et un autre vide des nombres.
j'aimerais que vous m'aidiez à trouver un code pour synchroniser les deux tableaux de telle sorte que
quand on met par example 1 2 3 dans les cellule d'en haut du 2ème tableau que cà affiche les nombres restant sur chaque ligne.
Merci beaucoup pour votre aide.
 

Pièces jointes

  • Filtrer-Afficher nombre.xlsm
    10.9 KB · Affichages: 23
Solution
Bonsoir Claudiuss,

Cette fois, c'est beaucoup plus clair ! :)

Voici la nouvelle version du fichier.

Utilisation

En H1, saisis 1 et valide ; ça affiche les bons résultats et la cellule active est I1.

En I1, saisis 3 et valide ; ça affiche les bons résultats et la cellule active est J1.

En J1, saisis 12 et valide ; ça affiche le bon résultat ; la cellule active est J1 ;
efface J1 (touche Suppression) ➯ en H2:L22, même nombres qu'en A2:E22
et la cellule active est H1.

Ensuite, même si H2:L22 est plein, tu peux refaire le même cycle :
saisie d'un nombre en...

danielco

XLDnaute Accro
Bonjour,

Mets cette macro dans le module de la feuille :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim I As Integer
  If Target.Column > 7 And Target.Column < 11 Then
    If Target.Count > 1 Then Exit Sub
    If Application.CountA(Cells(Target.Row, 8).Resize(, 3)) = 3 Then
      Application.EnableEvents = False
        For I = 1 To 5
          If Application.CountIf(Cells(Target.Row, 8).Resize(, 3), Cells(Target.Row, I)) = 0 Then
            If Cells(Target.Row, 11) = "" Then
              Cells(Target.Row, 11) = Cells(Target.Row, I)
            Else
              Cells(Target.Row, 12) = Cells(Target.Row, I)
            End If
          End If
        Next I
      Application.EnableEvents = True
    End If
  End If
End Sub

Daniel
 

soan

XLDnaute Barbatruc
Inactif
Bonjour,

Je propose ce code VBA :
VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim lig&
  With Target
    If .CountLarge > 1 Then Exit Sub
    lig = .Row: If lig = 1 Then Exit Sub
    If .Column < 8 Or .Column > 10 Then Exit Sub
  End With
  With Cells(lig, 4)
    If IsEmpty(.Offset(, 4)) Or IsEmpty(.Offset(, 5)) Or IsEmpty(.Offset(, 6)) Then
      .Offset(, 7).Resize(, 2).ClearContents
    Else
      .Offset(, 7) = .Value: .Offset(, 8) = .Offset(, 1)
    End If
  End With
End Sub
Ça fait ce que tu as demandé, mais aussi : sur une ligne de nombres,
si c'est vide en H, ou en I, ou en J (car tu as supprimé 1 à 3 nombres),
ça efface les nombres de K et L.

soan
 

Pièces jointes

  • Filtrer-Afficher nombre.xlsm
    16.8 KB · Affichages: 3

Claudiuss

XLDnaute Nouveau
Bonsoir,
ça ne passe pas.
svp je voudrais que initialement les deux tableaux soient identique c'est à dire contienent les meme valeurs. si on met 1 par exemple dans une des trois cellules coloriées du 2ème tableau, toute les ligne qui contiennent le nombre 1 se vident de ce nombre 1 et que les quatre autres nombre se range dans le 2ème tableau.

Et dans ce résultas, si on met un 2ème nombre dans la 2ème cellules coloriées, que ça donne même résultats comme pour le 1er cas.

Merci beaucoup.
 

soan

XLDnaute Barbatruc
Inactif
Tu as mis beaucoup d'informations, et je ne sais pas bien dans quel ordre il faut les lire !

Essai suivant, où dans le 1er tableau, les lignes ne sont plus effacées ;
et dans le 2ème tableau, les colonnes H et I restent vides ; on écrit
des nombres qu'en colonnes J, K, L.

soan
 

Pièces jointes

  • Filtrer-Afficher nombre.xlsm
    18.3 KB · Affichages: 2
Dernière édition:

Claudiuss

XLDnaute Nouveau
ok, je reexplique . nous avons HIJ les cellules coloriées.
si nous mettons un nombre dans h par ex, on aura 4 nombres pour chaque ligne et la colonne h seul restera vide jusqu'en bas.
et si on met un autre dans i, aura 3 nombre et la colonne i seul restera vide jusqu'en bas.
et si nous mettons un 3ème nombre dans j, on aura 2 nombre pour chaque ligne la colonne j seul restera vide jusqu'en bas.

Merci beaucoup
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Claudiuss,

En H1, saisis 1 et appuie sur Entrée ➯ I2:L7 contient les nombres adéquats.

En I1, saisis 2 et appuie sur Entrée ➯ J2:L3 contient :

4 ; 7 ; 11
4 ; 7 ; 11

En J1, saisis 4 et appuie sur Entrée ➯ K2:L3 contient :

7 ; 11
7 ; 11

En J1, si au lieu de 4 tu avais saisi par exemple 5, il n'y aurait eu
aucune donnée dans le 2ème tableau : H2:L22 vide.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Comme le 1er tableau à gauche est resté inchangé, tu peux continuer
en saisissant un autre nombre en H1 ; puis en I1 ; puis en J1.

Inutile d'effacer les résultats déjà présents : c'est fait automatiquement
par le code VBA, quand tu saisis un nombre en H1.


----------------------------------------------------------------------------------------------

Je pense que cette fois c'est OK ; si tu as autre chose à demander : note clairement
les références d'une cellule ou d'une plage de cellules, comme je l'ai fait ci-dessus
(ce qui est en gras, comme H1 et I2:L7) ; donne aussi un exemple chiffré.

soan
 

Pièces jointes

  • Filtrer-Afficher nombre.xlsm
    20.6 KB · Affichages: 2
Dernière édition:

Claudiuss

XLDnaute Nouveau
Bonjour à tous,
tout abord je vous remercie beaucoup pour votre aide.
c'est ça mais,il reste un petit soucis.

C'est que initialement les deux tableaux contiennent les mêmes nombre A et A'.
B:
quand nous entrons 1 par ex en N1, N2:N22 est vide et les lignes qui contiennent 1 se logent dans le tableau B.
et ainsi de suite.
en D, si nous enlevons le 12 d'en haut, tout redeviendra comme A et A'

ci joint le fichier détaillé

Merci beaucoup
 

Pièces jointes

  • Filtrer-Afficher nombre 3.xlsm
    20.9 KB · Affichages: 3

soan

XLDnaute Barbatruc
Inactif
Bonsoir Claudiuss,

Cette fois, c'est beaucoup plus clair ! :)

Voici la nouvelle version du fichier.

Utilisation

En H1, saisis 1 et valide ; ça affiche les bons résultats et la cellule active est I1.

En I1, saisis 3 et valide ; ça affiche les bons résultats et la cellule active est J1.

En J1, saisis 12 et valide ; ça affiche le bon résultat ; la cellule active est J1 ;
efface J1 (touche Suppression) ➯ en H2:L22, même nombres qu'en A2:E22
et la cellule active est H1.

Ensuite, même si H2:L22 est plein, tu peux refaire le même cycle :
saisie d'un nombre en H1 ; puis en I1 ; puis en J1 ; suppression
de J1 pour retourner en H1, sans passer par la case prison, et
peut-être en gagnant 20 000 €. :p (mais moi, je ne les ai pas !)

À te lire pour avoir ton avis, et si tout est OK, n'oublie pas
de cliquer sur « Marquer comme solution ».

soan
 

Pièces jointes

  • Filtrer-Afficher nombre 3.xlsm
    22.5 KB · Affichages: 6
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 287
Messages
2 086 823
Membres
103 395
dernier inscrit
Laurent34