répertoire, encore répertoire

coline741

XLDnaute Junior
Bonjour à tous,

En dépit des nombreuses discussions sur le sujet aucune ne m'a apporté de résultat étant simple débutant.

problème : soit une cellule quelconque contenant par exemple le répertoire suivant :

='C:\Documents and Settings\paul\Mes documents\TOULOUSE\ETATS D'ACOMPTE\04 - CASSIN\[04 - situations.xls]SITUATION 6'!$E$21

Comment, au moyen d'une macro-commande ouvrir le fichier "04 - situations.xls" et sélectionner la cellule E21 de l'onglet "SITUATION 6"

d'avance merci à tous les champions
 
C

Compte Supprimé 979

Guest
Re : répertoire, encore répertoire

Bonsoir,

En pure VBA sans formule annexe
Code:
Sub AtteindreCellule()
  Dim AdrCel As String, Wbk As String, Sht As String, Cel As String
  Dim VPath As String, Pos As Integer, Pos2 As Integer
  AdrCel = Range("A1").Value
  'AdrCel = "='C:\Documents and Settings\paul\Mes documents\TOULOUSE\ETATS D'ACOMPTE\04 - CASSIN\[04 - situations.xls]SITUATION 6'!$E$21"
  Pos = InStrRev(AdrCel, "]")
  Pos2 = InStrRev(AdrCel, "'!")
  ' Déterminer le classeur
  VPath = Mid(AdrCel, 3, Pos - 2)
  Wbk = Replace(VPath, "[", "")
  Wbk = Replace(Wbk, "]", "")
  ' Déterminer la feuille
  Sht = Mid(AdrCel, Pos + 1, Pos2 - Pos - 1)
  ' Déterminer la cellule
  Cel = Mid(AdrCel, Pos2 + 2, 10)
  Workbooks.Open Wbk
  ActiveWorkbook.Sheets(Sht).Select
  ActiveSheet.Range(Cel).Select
End Sub

A tester ;)

A+
 
Dernière modification par un modérateur:

coline741

XLDnaute Junior
Re : répertoire, encore répertoire

Bonsoir
Avec formule et macro
( en supprimant le = et le rem dans :='C:\Documents and Settings\paul\Mes documents\TOULOUSE\ETATS D'ACOMPTE\04 - CASSIN\[04 - situations.xls]SITUATION 6'!$E$21
Merci Jean-Marcel et BrunoM45 pour leur sagacité à la résolution et leur rapidité à proposer une réponse. Je vais me créer un macro par chaque et tester sur la feuille qui comporte des dizaines de liens avec des fichiers différents.

Merci à tous deux !

A+

Hubert
 

coline741

XLDnaute Junior
Re : répertoire, encore répertoire

Bonsoir,

En pure VBA sans formule annexe
Code:
Sub AtteindreCellule()
  Dim AdrCel As String, Wbk As String, Sht As String, Cel As String
  Dim VPath As String, Pos As Integer, Pos2 As Integer
  AdrCel = Range("A1").Value
  'AdrCel = "='C:\Documents and Settings\paul\Mes documents\TOULOUSE\ETATS D'ACOMPTE\04 - CASSIN\[04 - situations.xls]SITUATION 6'!$E$21"
  Pos = InStrRev(AdrCel, "]")
  Pos2 = InStrRev(AdrCel, "'!")
  ' Déterminer le classeur
  VPath = Mid(AdrCel, 3, Pos - 2)
  Wbk = Replace(VPath, "[", "")
  Wbk = Replace(Wbk, "]", "")
  ' Déterminer la feuille
  Sht = Mid(AdrCel, Pos + 1, Pos2 - Pos - 1)
  ' Déterminer la cellule
  Cel = Mid(AdrCel, Pos2 + 2, 10)
  Workbooks.Open Wbk
  ActiveWorkbook.Sheets(Sht).Select
  ActiveSheet.Range(Cel).Select
End Sub

A tester ;)

A+
Merci à BrunoM45 dit Matrix.

Peu habitué aux furoms le remerciement à été envoyé à Jean-Marcel qui propose une réponse. Bien sûr je vais tester les deux.

Merci encore à chaune.

Cordialement

Hubert.
 

coline741

XLDnaute Junior
Re : répertoire, encore répertoire

Arggh rien ne fonctionne comme prévu… il est vrai que la programmation VBA ne m'est pas vraiment familière alors que les macro-fonctions et commandes c'est mieux.

J'adresse à toutes fins utiles un ensemble de petits fichiers liés et une bonne vielle macro écrite il y a plusieurs années qui fonctionne pour certains fichiers (la preuve est jointe-elle remplace en fait le simple clic sur cellule d'excel 4 sur mac qui sélectionnait les cellules dépendantes ou ouvrait directement le document lié) et qui refuse pour d'autres c'est inoui !

Alors mes bons amis les champions du VBA, merci de m'aider car plusieurs heures sur un problème ça fatigue:mad:

Hubert
 

Pièces jointes

  • MODELE.zip
    16.7 KB · Affichages: 40
  • MODELE.zip
    16.7 KB · Affichages: 38
  • MODELE.zip
    16.7 KB · Affichages: 37

coline741

XLDnaute Junior
Re : répertoire, encore répertoire

Merci Jean-Marcel,

Désolé, mais le remplacement du fichier et l'écriture du chemin présente la réponse suivante : Erreur d'exécution '1004' la méthode 'Range' de l'Objet '_Global' a échoué. Le déboguage se positionnant sur : Chemin = Range("Feuil1!J26")

Le but de la macro doit permettre d'ouvrir le fichier détail en se positionnant sur une des cellules renseignée de la colonne F du document 04 - ETANCHEITE.xls.

Dans la macrocommande jointe : macro_selection [CTRL+MAJ+S], en se positionnant sur F18 , le fichier lié 04-détails2 s'ouvre et la cellule dépendante est bien sélectionnée. Si l'on relance la même commande le fichier lié s'ouvre bien et la cellule attendue est bien sélectionnée.

Pourquoi ça coince en VBA?

Bon je te remercie pour ton aide.

A+ tard

Cordialement

Hubert
 

coline741

XLDnaute Junior
Re : répertoire, encore répertoire

Bonsoir,

Après moults réflexions et essais. Je reste la brute épaisse du VBA. C'est la honte

Peu importe en s'en sort encore avec les bonnes vieilles fonctions.

Je te remercie pour ton aide.

Je m'y remettrai un autre week-end.

Voici à toutes fins utiles ce que je fais en excel classique et qui ne fonctionnait pas à tous les coups à cause d'une apostrophe dans le nom de sous dossiers ! Sur Mac pas de problème mais sur PC oups !

A+

Cordialement Hubert
 

Pièces jointes

  • MODELE rep2.zip
    22.7 KB · Affichages: 34

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p