Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…