Microsoft 365 Saisie automatique dans cellule en fonction d'une autre

odohe

XLDnaute Occasionnel
Bonjour, à tous

je tiens à préciser que je suis novice.
Voila ma question j'ai un classeur qui se nomme PCC y aurait-il possibilité avec un code VBA d'inscrire automatiquement dans les cellules de la colonne B en fonction du nombre indiquer dans les cellules A et qui va rechercher le résultat sur le classeur nommer Affectation Tram
Voici un exemple que j'aimerai obtenir

Classeur PCC
1031721


Classeur Affectation Tram
1031717



Ps: j'ai bien une formule qui fonctionne assez bien mais c'est pas terrible d'avoir des formule inscrit dans les cellules

1031718
=RECHERCHEV(A3;'Affectation Tram'!Y1:Z397;2;FAUX)

Merci d'avance pour votre aide.
 

odohe

XLDnaute Occasionnel
Re,

Voir le lien que je t'ai mis dans le message idoine;)
(message#40)

PS: Si la fatigue te guette, on peut continuer demain.
Car je vais pas tarder à utiliser ma zapette et appuyer sur le bouton idoine pour atterrir sur la chaîne TV que je souhaite regarder ce soir. ;)
Merci pour votre patience
je pense que c'est bon sa fonctionne, à demain pour d'autres aventures :p
il me restera plus que les dates:eek:

1000 merci
 

Staple1600

XLDnaute Barbatruc
Re,

Oui pour ce qui concerne les dates, le moment idoine, je viendrai voir si il faut s'occuper de celles-ci.
Bien que le solution (ou plutôt l'inspiration) soit déjà présente dans le code de Worksheet_Change
Il y a pas grand chose à ajouter pour les dates...
Tu ne vois pas comment faire?
Je te laisse faire quelques tests et repasserai après ma parenthèse télévisuelle. ;)
 

odohe

XLDnaute Occasionnel
Le code que vous m'avez fourni me permet de rajouter la date de la cellule J c'est déjà bien j'ai juste dû modifié la ligne T(1, 2) = date ' dernier ajout
il me manque juste la possibilité de rajouter la date dans la cellule C en fonction que je remplisse la cellule A
 

odohe

XLDnaute Occasionnel
Ok j'ai trouvé la solution
Private Sub Worksheet_Change(ByVal T As Range)
If T.Column = 9 Then
T(1, 4) = Environ("username")
T(1, 2) = Date ' dernier ajout
End If
If T.Column = 1 Then
T(1, 3) = Date ' dernier ajout
End If
End Sub

1000 merci Staple ;)
 

odohe

XLDnaute Occasionnel
Bonsoir, Staple
Le code que vous m'avez fourni fonctionne à merveille, mais vous pensez qu'il y a possibilité d'arranger ce petit problème, je m'explique
lorsque je suis sur une feuille exemple PCC et que j'efface une ou plusieurs lignes et puis que je retape un N° de tram colonne A, la colonne dépôt d'attache reste vide je suis obligé de partir sur une autre feuille et puis de revenir pour que les cellules de la colonne dépôt d'attache soit remplie

VB:
Private Sub Worksheet_Activate()
Dim DerL As Long
DerL = Cells(Rows.Count, 1).End(3).Row
Range("B3:B" & DerL + 5) = "=IFERROR(VLOOKUP(RC[-1],'Affectation Tram'!R1C25:R99999C26,2,FALSE),"""")"
End Sub

Ps: si vous avez une solution je pourrai le tester tard le soir pour cause je travail toute la semaine de 13h à 22h

Merci
 

odohe

XLDnaute Occasionnel
Bonsoir,
J'ai un bizarre bug avec mon projet, par exemple si je suis sur ma feuille nommer PCC et que clic sur ma macro refresh le tri automatique de la colonne F s'effectue correctement sur mon PC, par contre le même projet mais sur le PC de mon travail quand clic sur refresh j'ai un message d'erreur voici le code qui est dans la feuille PCC
VB:
Sub refresh()
Dim derlig
  With Sheets("PCC")
    derlig = .Cells(.Rows.Count, "a").End(xlUp).Row
    .Range("a2:k" & derlig).Sort key1:=.Range("a2"), order1:=xlAscending, Header:=xlYes
 End With
 
 ' Macro2_Tri_colonne_F Macro
' Tri
'

'
    Range("F3:F1048576").Select
    ActiveWorkbook.Worksheets("PCC").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("PCC").Sort.SortFields.Add2 Key:=Range("F3"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("PCC").Sort
        .SetRange Range("A3:L233")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1:K1").Select
End Sub

Voici le message qui apparait sur le PC de mon boulot, auriez-vous une idée de mon problème
1032149
1032150


Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

odohe
Une correction possible par rapport à ta question du message#69
VB:
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If T.Column = 1 And T.Count = 1 Then
T(1, 2) = "=IFERROR(VLOOKUP(RC[-1],'Affectation Tram'!R1C25:R99999C26,2,FALSE),"""")"
End If
End Sub
NB: Rappel: il ne doit y avoir qu'une seule procédure Worksheet_SelectionChange() dans la feuille concernée.
Je ne sais plus s'il y en avait déjà une ou pas.
 

Staple1600

XLDnaute Barbatruc
Re

Pour ton histoire de "triage" ;), teste cette macro de tri*
(Il y a en deux mais c'est la même, seule la syntaxe varie)
VB:
Sub test_TRI_I()
Worksheets("PCC").Range("A3:L233").Sort Key1:=Range("F3"), Order1:=xlAscending, Header:=xlYes
End Sub
Sub test_TRI_II()
With Worksheets("PCC").[A3:L233]
.Sort Key1:=.Item(6), Order1:=1, Header:=1
End With
End Sub
Est-ce que le tri se fait bien quel que soit le PC?
Si oui, remplace ta macro initiale par une de ces deux macros.

NB: Il y avait déjà cette syntaxe dans ta macro refresh mais avec un tri sur la colonne A
(en début de code)
 

odohe

XLDnaute Occasionnel
Bonjour le fil,

odohe
Une correction possible par rapport à ta question du message#69
VB:
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If T.Column = 1 And T.Count = 1 Then
T(1, 2) = "=IFERROR(VLOOKUP(RC[-1],'Affectation Tram'!R1C25:R99999C26,2,FALSE),"""")"
End If
End Sub
NB: Rappel: il ne doit y avoir qu'une seule procédure Worksheet_SelectionChange() dans la feuille concernée.
Je ne sais plus s'il y en avait déjà une ou pas.
Super merci le souci est résolu
 

odohe

XLDnaute Occasionnel
Re

Pour ton histoire de "triage" ;), teste cette macro de tri*
(Il y a en deux mais c'est la même, seule la syntaxe varie)
VB:
Sub test_TRI_I()
Worksheets("PCC").Range("A3:L233").Sort Key1:=Range("F3"), Order1:=xlAscending, Header:=xlYes
End Sub
Sub test_TRI_II()
With Worksheets("PCC").[A3:L233]
.Sort Key1:=.Item(6), Order1:=1, Header:=1
End With
End Sub
Est-ce que le tri se fait bien quel que soit le PC?
Si oui, remplace ta macro initiale par une de ces deux macros.

NB: Il y avait déjà cette syntaxe dans ta macro refresh mais avec un tri sur la colonne A
(en début de code)
Merci les deux code fonctionne sur le PC de mon travail alors qu'au paravent il y avait un message d'erreur, par contre lorsque je clic sur la macro refresh il me regroupe bien la colonne F (avarie répétée) mais pas dans le bonne ordre j'aimerai qu'il place d'abord le OUI avant le NON et le deuxièmes soucis la ligne N° 3 lorsqu'elle est vide et que je clic sur refresh il fait bien monté toutes les autres lignes mais jusqu'à la ligne 4 alors qu'ils doivent monté jusqu'à la ligne 3
:(

VB:
Sub refresh()
Dim derlig
  With Sheets("PCC")
    derlig = .Cells(.Rows.Count, "a").End(xlUp).Row
    .Range("a2:K" & derlig).Sort Key1:=.Range("a2"), Order1:=xlAscending, Header:=xlYes
 End With
 
 ' Macro2_Tri_colonne_F Macro

With Worksheets("PCC").[A3:L233]
.Sort Key1:=.Item(6), Order1:=1, Header:=1
 End With
End Sub

Merci
 

Staple1600

XLDnaute Barbatruc
Re,

Je ne sais quelle solution tu as retenue pour afficher les OUI/NON
Celle de mapomme ou la mienne?

Ta macro refresh fait deux tris (colonne A plus colonne F)
C'est bien ce que tu souhaites?
Ce qui est bizarre c'est dans le premier tu es en ligne 2 et pour le second en ligne 3.
 

Discussions similaires

Statistiques des forums

Discussions
312 115
Messages
2 085 453
Membres
102 890
dernier inscrit
selkis