[VBA Excel]

lilemy Messages postés 4 Statut Membre -  
Sir_DEC Messages postés 143 Statut Membre -
Bonjour,
J'ai un problème, j'ai trouvé une semi-solution mais sa ne peu pas vraiment fonctionner. J'explique. Le problème viens d'un Userform, en faite quand le clique dans une cellule, je garde les données dans target.address mais le truc c'est que mon userform perd cette information je l'ai donc mise dans une variable je j'ai appelé cel.
La sa fonctionne en partie. Le truc c'est à la fin de mon code j'utilise une ligne genre : Cells(Target.Row, Target.Column - 1).Address mais vu que mon Target.address se trouve dans cel sa ne fonctionne pas.
je voudrais savoir s'il est possible de faire un truc genre
Target.address = cel
Configuration: Windows XP
Firefox 1.5.0.12

6 réponses

  1. Sir_DEC Messages postés 143 Statut Membre 75
     
    Bonjour,

    Le Target est une variable modifiée directement par Excel, tu ne peux pas (enfin je suppose à vrai dire) y toucher.

    Par contre dans ton code pourquoi ne pas utiliser "Range(cel).row" et "Range(cel).column" ?

    PS : Un effort en orthographe serait agréable, merci.
    0
  2. lilemy Messages postés 4 Statut Membre
     
    Quand j'utilise un range sur cette ligne :
    Sheets(cel).Range("b4").FormulaLocal = "=prix!" & Range(cel.Row, cel.Column - 2)
    En utilisant cel comme tu me l'a dit cela me fait une erreur sur le Row
    0
  3. Sir_DEC Messages postés 143 Statut Membre 75
     
    Sheets(cel).Range("b4").FormulaLocal = "=prix!" & Range(cel.Row, cel.Column - 2)

    Ici tu utilises deux fois cel, une fois en tant que feuille, une autre fois en tant qu'adresse, cel est une adresse, c'est tout.

    Ta formule doit être :
    Sheets(ta_feuil).Range("B4") = Sheets("prix").Range(cel)


    Ca devrait fonctionner comme ça. Une variable n'a qu'un type.

    Et pour affecter une cellule à une autre, ne t'embête pas avec un "FormulaLocal", il suffit de donner la feuille et la plage comme je l'ai fait ci-dessus.

    En fait... Qu'y a-t-il dans la variable "cel" ? Peux-tu me copier l'affectation que tu y fais ?
    0
  4. lilemy Messages postés 4 Statut Membre
     
    fconfirmation.cel = Target.Address

    c'est cette variable qui me pose tous les problèmes
    sinon j'ai utilisé ta ligne en y ajoutant .column - 2 et il y a toujours une erreur
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Sir_DEC Messages postés 143 Statut Membre 75
     
    Et la déclaration de ta variable ?

    Qu'est-ce que fconfirmation ? Son type ?

    Si tu ne donnes pas le contexte de ton problème, ni moi ni quelqu'un d'autre ne pourra t'aider.
    0
  7. lilemy Messages postés 4 Statut Membre
     
    Bon alors le contexte
    Quand je double clique sur une cellule je fait :

    Public Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    fconfirmation.cel = Target.Address
    fconfirmation.Show
    End Sub

    fconfirmation étant un userform contrenant 1 label nommé "cel" et deux bouton Oui et Non

    Quand je clique sur oui je lance le code suivant :

    Public Sub bntoui_Click()
    Me.Hide
    'MsgBox "Vous avez double cliqué sur la cellule " & Target.Address
    Cancel = True
    If FeuilleExiste(ThisWorkbook, cel) Then
    Sheets(cel).Select
    Else
    Sheets.Add.Name = cel
    tableau
    Sheets("Prix").Select
    Range(cel).Select
    ActiveCell.FormulaR1C1 = "='" & cel & "'!R49C7"
    Sheets(cel).Range("B4") = Sheets("prix").Range(cel).Column - 2
    End If
    End Sub

    Et c'est la que trouve les erreurs
    0
    1. Sir_DEC Messages postés 143 Statut Membre 75
       
      Sheets(cel).Select

      Cette ligne ne peut fonctionner, cel n'étant pas une feuille mais l'adresse d'une cellule...

      Peut-être qu'en expliquant ce que doit faire le bouton, je pourrais mieux t'aider, mais il faut déjà corriger cette erreur.
      0