Accès à la cellule à droite de la cible

Bonjour à tous,

la macro que j'essaie de mettre en place, créer un dossier dans le chemin courant du classeur excel

et je souhaiterais que la colonne à droite de la cible soient garnie avec un lien hyperttext vers le dossier créer

voici mon code... il ne me génère pas d'erreur... mais je n'arrive pas à garnir la cellule en colonne de droite

Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next

    Dim Path As String
    Dim Dossier As String
    Dim DossierLink As Range
    Dim Colonne As Range
    Path = ThisWorkbook.Path

If Range("A1") = "N° Dossier" Then

        Colonne = Target.Column
        Dossier = Path & "\" & Target.Value
        MkDir Dossier

       Set DossierLink = Colonne
       DossierLink.Hyperlinks.Add Anchor:=DossierLink, Address:=Dossier, TextToDisplay:=Documents

    End If
End Sub

j'ai essayé avec Colonne = Target.Column +1 mais pas de résultat

avez-vous une idée

merci d'avance pour votre aide

excellente journée

Bonjour

Voir Offset

Target.offset(0,1)

Bonjour Merci,

En effet cela fonctionne mais petit bug quand même car toute les cellules à droites sont remplies avec concaténation du texte

exemple c:\test ensuite c:\testc:\test ensuite c:\testc:\testc:\test etc...

deplus je n'arrive pas à activer le lien hypertexte vers le dossier créé

Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next

    Dim Path As String
    Dim Dossier As String
    Dim DossierLink As Range
    Dim Colonne As Range
    Path = ThisWorkbook.Path

If Range("A1") = "N° Dossier" Then

        Dossier = Path & "\" & Target.Value
        MkDir Dossier
        Target.Offset(0, 1) = Dossier

        'Target.Offset(0, 1).Hyperlinks.Add Anchor:=DossierLink, Address:=Dossier, TextToDisplay:=Documents

    End If
End Sub

bien à vous

Bonjour,

il ne me génère pas d'erreur...

Tu m'étonnes...

Commence par enlever On Error Resume Next pour les voir. Là, tu mets la poussière sous le tapis.

Ca ne doit être utilisé que dans des cas voulus et connus, rétablir avec On Error Goto 0 dès que possible.

eric

Bonjour,

merci pour le retour.

On Error Resume Next

était dans le cas d'une suppression de ligne dans la feuille

dites moi si je me trompe

la commande ThisWorkbook donne le chemin courant

la commande Target.Value donne la valeur que je viens d'encodée

lors du débug je constate ceci

la variable Dossier devrait contenir => le chemin courant\le nom dossier qui est la valeur de Target.Value

cependant quand je pointe ThisWorkbook en mode debug il contient bien le chemin courant mais lorsque je pointe Target.Value il me donne le chemin courant\le nom dossier.

En d'autre terme la variable dossier contient le chemin courant\chemin courant\le nom dossier

Je ne comprends pas et ne vois pas comment solutionner mon problème

Merci

Excellente journée

Bonjour,

On Error Resume Next

était dans le cas d'une suppression de ligne dans la feuille

Ici c'est pour toute la procédure, donc non.

ActiveSheet.Hyperlinks.Add Anchor:=Range_cellule_recevant_le_lien, Address:="chemin_dossier",TextToDisplay:="blablabla"

Pour le reste ne sachant pas ce que contient précisément Target, je ne vois pas.

eric

Bonjour

Merci

En annexe le fichier de test.xlsm

avec la portion de code

merci d'avance

bon après-midi

8test.xlsm (22.24 Ko)

Bonjour

Sub Worksheet_Change(ByVal Target As Range)
    'On Error Resume Next
    Chemin = ThisWorkbook.Path

    If Range("A1") = "N° Dossier" Then

        Dossier = Chemin & "\" & Target.Value
        MkDir Dossier
        Application.EnableEvents = False
        ActiveSheet.Hyperlinks.Add Anchor:=Target.Offset(0, 1), Address:=Dossier, TextToDisplay:="Documents"
        Application.EnableEvents = True

    End If
End Sub

Bonjour et merci,

Mais j'aimerais comprendre la portée de ces deux instructions qui solutionne mon problème

Merci d'avance

Application.EnableEvents = False
xxx
Application.EnableEvents = True

belle après-midi

RE

Dans tu écris en B2 cela déclenche le code mais en inscrivant un hyperlien en C3, tu fais un changement et donc le macro recommence

Tu pourrais aussi sans doute limiter la portée du code (colonne B ?) mais avec un exemple aussi succinct on ne sait quelle est la réalité

Ca n'a rien à voir avec ton pb, c'est juste pour éviter que la macro se relance inutilement.

A 2 endroits tu as écris Chemin & Dossier au lieu de Chemin & "\" & Dossier

Ton erreur originale était dans Anchor:= où tu mettais autre chose que ce qui y était attendu comme je te l'avais indiqué en gras.

eric

j'ai ajouter quelques éléments

Sub Worksheet_Change(ByVal Target As Range)
    'On Error Resume Next
    Chemin = ThisWorkbook.Path

    If Range("A1") = "N° Dossier" Then
      If Target.Value <> "" Then
        Dossier = Chemin & "\" & Target.Value
        If Dir(Dossier, vbDirectory) = "" Then
                MkDir Dossier
        End If
        Application.EnableEvents = False
        ActiveSheet.Hyperlinks.Add Anchor:=Target.Offset(0, 1), Address:=Dossier, TextToDisplay:="Documents"
        Application.EnableEvents = True
      End If
    End If
End Sub
Rechercher des sujets similaires à "acces droite cible"