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 :

valeur cellule formule matricielle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut valeur cellule formule matricielle
    Bonjour,

    Dans une cellule, j'ai une formule matricielle, je cherche à récupérer la valeur car ça génère une boucle : s'il y a une valeur ou non dans la cellule, pour l'instant j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Sheets("Lien").Cells(i, j).Value = 0 Then
    j'ai aussi essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Sheets("Lien").Cells(i, j).Value = " " Then
    Marche pas non plus...: comme la formule matricielle est dans la cellule, le code "estime" qu'elle n'est pas vide.

    Une petite idée ?

    Merci,
    A+

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    bonjour,
    avec ton test =" " tu regarde s'il y a un espace dans ta cellule. Je ne pense pas que ce soit ce que tu souhaite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Sheets("Lien").Cells(i, j).Value = "" Then
    ou alors utilise la fonction isempty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if not isempty(Cells(i, j)) then

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Merci Krovax,

    J'ai essayé, mais ça ne fonctionne pas, la formule apparait toujours ....Ci joint une partie du code pour meilleure compréhension
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i = 3 To 10 'DerniereLigne
    If Not IsEmpty(Cells(i, 8)) Then
    'If Not Sheets("Lien").Cells(i, 8) = " " Then
    Sheets("Lien").Cells(i - 1, 9).Copy Sheets("Lien").Cells(i, 9)
    Application.ScreenUpdating = False
    End If
    Next i
    Donc, si il y a valeur dans la colonne 8, je copie/colle (la formule matricielle)dans la colonne 9 à partir de la cellule précédente.

    Même "Isempty" ne fonctionne pas : la formule apparait dans la colonne 8, même s'il n'y a pas de valeur, le code copie dans la colonne 9. Alors que moi, je cherche à ce qu'il ne copie pas s'il n'y a pas de valeur dans la colonne 8....Avec une cellule "normale", pas de soucis, avec la matricielle, elle apparait toujours....

    Merci,
    A+

  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
    Peux-tu préciser ce que tu veux dire par
    je cherche à ce qu'il ne copie pas s'il n'y a pas de valeur dans la colonne 8
    Dès qu'une cellule n'est pas vide, elle contient une valeur. Si une formule renvoie "" dans une cellule, cette cellule n'est pas vide.
    "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 éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Merci Pierre,

    Justement, c'est ce qui me pose soucis = j'ai ma formule matricielle dans la cellule H16 (par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=INDEX('R4'!$D$1:$D$500;MIN(SI('R48'!$J$3:$J$500=$G16;SI(NB.SI($A16:$G16;'R4'!$D$3:$D$500)=0;LIGNE('R4'!$J$3:$J$500)))))&""}
    Il n'y a pas de valeur affichée, et mon code (cf post) apparemment prend la formule matricielle comme valeur.....puisqu'il me copie/colle en I9.

    Merci,
    A+

  6. #6
    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
    C'est un comportement normal d'Excel...

    Ta cellule n'est pas vide puisqu'elle contient une formule. Donc, elle est copiée. IsEmpty renvoie FALSE sur une cellule qui contient une formule, même si cette formule renvoie "". Au passage, une formule d'Excel ne renvoie pas "du vide"...

    La méthode Copy "singe" la copie d'Excel => si une formule est présente dans la cellule, c'est la formule qui est copiée, non la valeur (comme un "bête" copier-coller en Excel).

    Si tu ne veux copier que les valeurs, tu dois "singer" le copier-collage spécial valeurs, comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Lien").Cells(i, 9).copy
    Sheets("Lien").Cells(i - 1, 9).PasteSpecial xlPasteValues
    Tu peux aussi utiliser directement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Lien").Cells(i, 9).value = Sheets("Lien").Cells(i - 1, 9).value
    "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...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copier des cellules (Valeur et Formule)
    Par maxoup dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/03/2013, 08h56
  2. Réponses: 5
    Dernier message: 08/02/2013, 10h04
  3. [XL-2007] Inserer valeurs cellules sans formules - Débutant
    Par isfet dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/05/2010, 18h53
  4. formule matricielle et cellule vide
    Par alsimbad dans le forum Excel
    Réponses: 4
    Dernier message: 24/04/2008, 15h12
  5. Comment affecter une formule matricielle longue dans une cellule
    Par dav_e77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2007, 18h56

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