IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[E-03] Pb avec les symboles $


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Par défaut [E-03] Pb avec les symboles $
    Bonjour,

    Voilà j'ai créé une macro pour entrer dans une cellule une formule de recherche en fonction d'un parametre determine sur une plage variable.
    Le code fonctionne bien c'est pas le souci, mais simplement il me rentre dans ma cellule cette formule : RECHERCHE($C$11;'DONNEES BRUTES'!$B$6:$B$25;'DONNEES BRUTES'!$S$6:$S$25).
    Ce qui me chagrine c'est qu'il introduit automatiquement les symboles "$", ce qui m'empèche par la suite avec un autre code d'étirer ma case pour étendre cette fonction aux cellules suivantes (mêmes plages d'analyse mais pas même valeur recherchée).
    En fait je voudrais que ça s'affiche comme suit : RECHERCHE(C11;'DONNEES BRUTES'!$B$6:$B$25;'DONNEES BRUTES'!$S$6:$S$25).

    Ci-joint le code incriminé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Sub sonde_ind()
    Dim colonne As Integer
    Dim a As Object
    Dim sonde
    sonde = Sheets("INDICATEUR").Range("O11").Value
     
     
    Sheets("INDICATEUR").Activate
    For Each a In Sheets("DONNEES BRUTES").Range("C5:AL5")
    If a.Value = sonde Then
    colonne = a.Column
    Exit For
    End If
    Next a
     
    ActiveSheet.Range("G11").Activate
    ActiveCell.FormulaR1C1 = "=LOOKUP(R11C3,'DONNEES BRUTES'!R6C2:R25C2,'DONNEES BRUTES'!R6C" & colonne & ":" & "R25C" & colonne & ")"
     
    End Sub
    Merci d'avance.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Utilise FormulaLocal à la place de FormulaR1C1 et écris ta formule en français

  3. #3
    Membre éclairé
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Par défaut
    ah tiens je ne le savais pas ça!
    Merci pour le FormulaLocal

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    & Ousk... Avec Formulalocal, si la macro tourne un jour sur un Excel anglais, bonjour la plantouille...

    Ce qui pose problème, ce n'est pas tant le Local que le R1C1

    Personnellement, j'utiliserais une variable String pour récupérer la lettre de colonne, et je saisirais les formules avec .Formula plutôt qu'avec .FormulaR1C1...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ColonneLettres = Split(Cells(1, Colonne).Address, "$")(1)
    ActiveCell.Formula = "=LOOKUP(C11,'DONNEES BRUTES'!$b$6:$b$25,'DONNEES BRUTES'!" & colonnelettres & "6:" &  colonnelettres & "25)"
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Par défaut
    Merci pour votre réponse les gars, c'est nickel.

    Seulement j'aimerais avoir une petite explication de texte sur cette formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ColonneLettres = Split(Cells(1, Colonne).Address, "$")(1)

    Je ne comprends vraiment rien à cette ligne de code !!

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Exécute le petit bout de code ci-dessous, cela devrait t'éclairer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    MsgBox "Cells(5, 5).Address = " & Cells(5, 5).Address & Chr(10) & Chr(10) _
            & "Split(Cells(5, 5).Address, ""$"")(1) = " & Split(Cells(5, 5).Address, "$")(1) & Chr(10) & Chr(10) _
            & "Split(Cells(5, 5).Address, ""$"")(2) = " & Split(Cells(5, 5).Address, "$")(2)
    End Sub

Discussions similaires

  1. Problème avec les symboles
    Par membreComplexe12 dans le forum Qwt
    Réponses: 2
    Dernier message: 03/07/2011, 11h17
  2. Réponses: 2
    Dernier message: 13/12/2007, 14h45
  3. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  4. PB d'import avec les ActiveX sous BCB6
    Par dergen dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/11/2002, 10h18
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo