Mettre à jour un champs dans un autre fichier

julbute

XLDnaute Junior
Bonsoir et bonne année à tous.
voici ma problèmatique:
J'ai deux fichiers A & B

Sur le fichier A j'ai des valeurs dans la colonne A, que je selectionne( touche CTRL+Clic droit).Le contenu des cellules sont une concaténation de plusieurs cellules par la formule B1&C1&D1 etc...

Lorsque je les ai selectionné il faut ouvrir le fichier B, où il y a trois onglets:
Saisie, Liste ,Feuil1

Un seul est visible "Saisie" les autres sont masqués et les onglets sont verouillés par un mot de passe. A l'ouverture du fichier il y a une fenêtre d'authentification qui s'ouvre.

Il faut inscrire dans l'onglet "Liste" la valeur de la selection du fichier A à partir de la position H4, qui est fixe.Ces mêmes valeur doivent faire partie d'un champ nomé "Etape"
C'est peut etre un peu compliqué à réalise en VBA.
J'ai des notions, mais qui ne me permettent pas (encore) de réaliser cela.C'est pour cela que j'ai besoin de votre aide.
Merci
 

PMO2

XLDnaute Accro
Re : Mettre à jour un champs dans un autre fichier

Bonjour,

Pouvez-vous joindre vos 2 fichiers édulcorés (ou une simulation de chacun) mais qui conservent leurs structures, les feuilles cachées avec mot de passe, feuille d'authentification ... ?

Cordialement.

PMO
Patrick Morange
 

julbute

XLDnaute Junior
Re : Mettre à jour un champs dans un autre fichier

Bonjour,
voici les deux fichiers épurés, je ne peux malheureusement pas mettre les originaux.Normalement il y a quelques macros à l'intérieur du fichier.
La phase d'authentification se fait en VBA.
Authentification de l'utilisateur par menu déroulant et inscription d'un mot de passe à l'ouverture du fichier, inactif sur celui ci.Ensuite si le mot de passe est correct il y a une insertion de date avant l'ouverture de la feuille.

J'espere etre clair.
Merci de votre aide
 

Pièces jointes

  • Fichier A.xls
    38 KB · Affichages: 70
  • Fichier B.xls
    34.5 KB · Affichages: 67
  • Fichier A.xls
    38 KB · Affichages: 76
  • Fichier B.xls
    34.5 KB · Affichages: 67
  • Fichier A.xls
    38 KB · Affichages: 74
  • Fichier B.xls
    34.5 KB · Affichages: 66

PMO2

XLDnaute Accro
Re : Mettre à jour un champs dans un autre fichier

Bonjour,

Voilà ce que j'ai fait

1) J'ai mis le classeur "Fichier B" dans C:\
2) Dans le classeur "Fichier A", j'ai mis le code suivant dans un module standard où les constantes cernées par des ### sont à adapter.

Code:
'### Constantes à adapter ###
Const FICHIER_B As String = "C:\Fichier B.xls"
Const FEUILLE_B As String = "LISTE"
Const NOM_PLAGE_B As String = "Etape"
'############################

Sub UpdateChampB()
Dim WB As Workbook
Dim S As Worksheet
Dim R As Range
Dim N As Name
Dim var
Dim T()
Dim i&
Dim cpt&
If TypeName(Selection) <> "Range" Then Exit Sub
For Each R In Selection
  If R.Column <> 1 Then Exit Sub
  If R.Row < 5 Then Exit Sub
  If R <> "" Then
    cpt& = cpt& + 1
    ReDim Preserve T(1 To 1, 1 To cpt&)
    T(1, cpt&) = R
  End If
Next R
If cpt& = 0 Then Exit Sub
On Error GoTo Erreur
Application.ScreenUpdating = False
Set WB = GetObject(FICHIER_B)
WB.Windows(1).Visible = True
Set S = WB.Sheets(FEUILLE_B)
Set R = S.[h4].CurrentRegion
Set R = R.Resize(R.Rows.Count - 1, 1)
Set R = R.Offset(1, 0)
R.ClearContents
Set R = S.Range("h4:h" & UBound(T, 2) + 3 & "")
R = Application.WorksheetFunction.Transpose(T)
On Error Resume Next
Set N = WB.Names(NOM_PLAGE_B)
If Err <> 0 Then
  WB.Names.Add Name:="Etape", RefersTo:="='" & S.Name & "'!" & R.Address & ""
Else
  WB.Names.RefersTo = "='" & S.Name & "'!" & R.Address & ""
End If
Err.Clear
Erreur:
If Not WB Is Nothing Then
  WB.Close savechanges:=True
  Set WB = Nothing
End If
Application.ScreenUpdating = ture
If Err <> 0 Then MsgBox "Erreur : " & Err.Number & vbCrLf & Err.Description
End Sub


Sélectionnez plusieurs cellules (contiguës ou non) dans la colonne A à partir de la ligne 5 de la feuille"Suivi projet" puis lancez la macro UpdateChampB.
Les données de la sélection vont s'inscrire dans la feuille "LISTE" du classeur "Fichier B" à partir de la cellule H4 et référence le nom "Etape" (si c'est bien cela qu'il fallait faire)

Cordialement.

PMO
Patrick Morange
 

Discussions similaires

Statistiques des forums

Discussions
312 352
Messages
2 087 519
Membres
103 573
dernier inscrit
jg1984