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 :

Ecrire une formule avec "" via une macro [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut Ecrire une formule avec "" via une macro
    Bonjour à tous,

    Alors j'ai une petite question bien précise.

    J'ai besoin via une macro (worksheet_change) d'écrire une formule dans la cellule modifiée.

    Tout fonctionne parfaitement sauf lorsque j'ai besoin de mettre des " " dans la formule. Est-ce que c'est possible ou pas?

    Je joins le code et le problème se situe dans le second ElseIf, ligne avec écrit PROBLEME




    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    Private Sub Worksheet_Change(ByVal Target As Range)
    'Se lance à chaque modification de la feuille
     
     
    'Déclaration des variables
    Dim Valeur As String
    Dim Ligne As Integer
    Dim Formule As String
    Dim i As Integer
    Dim J As Integer
     
     
    'On récupère le numéro de ligne et la valeur rentrée dans la cellule modifiée
    On Error GoTo 1
     
    Ligne = Target.Row
    Valeur = Target.Value
     
     
    'Si la valeur vaut 0 on sort de la macro
     
    If Valeur = 0 Then
     
        Exit Sub
     
    Else 'Sinon on va réaliser une boucle pour savoir si la case modifiée fait parti de celles qui nous intéressent
     
        'Premiere Ligne à traiter
     
        J = 6
        i = 5
        Do While J < 50000 'Jusqu'a la ligne 50000
     
            If Ligne < i Then 'Si la ligne a déja été dépassée on sort de la macro
     
                Exit Do
     
            ElseIf Ligne = J Then 'Si on est sur la bonne ligne
     
                 'Et entre les colonnes L à IV
                If Not Application.Intersect(Target, Range("L" & J & ":IV" & J)) Is Nothing Then
     
     
                    'on entre la formule correspondante
                    Formule = "=IF(C" & Ligne & "=0, 0 ," & Valeur & " )"
     
                    Target.Formula = Formule
     
                    Exit Sub
     
                Else:
                Exit Sub
     
     
                End If
     
     
            ElseIf Ligne = i Then
     
                If Not Application.Intersect(Target, Range("L" & i & ":IV" & i)) Is Nothing Then
     
                    Formule = "=IF(C" & Ligne & "="0'"" & ", 0 ," & Valeur & " )"  'PROBLEME ICI JE NE PEUX L'ECRIRE COMME CE
     
                    Target.Formula = Formule
     
                    Exit Sub
     
     
                End If
            Else:
            'Sinon on boucle toutes les trois lignes
            J = J + 3
            i = i + 3
     
            End If
     
        Loop
     
    End If
     
    1: Exit Sub
     
    End Sub
    Donc voila si quelqu'un sait comment faire ou à une idée pour contourner le problème je suis preneur!

    Merci d'avance

    Guillaume

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Par défaut
    Bonjour,

    Je ne suis pas expert.

    Essaye avec des cotes simples.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut
    Bonjour,

    Merci pour l'idée hélas ca ne fonctionne pas non plus

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Par défaut
    Re,

    Essaye Chr(34) ou des doubles guillemets "" "".

    Mais je t'avoue ne pas être sûr de mon coup

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut
    Ca marche effectivement avec les doubles guillemets!
    (J'ai pas essayé Chr(34) )

    Merci Miistik

    Bonne fin de journée

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

Discussions similaires

  1. [XL-2007] Ecrire une formule avec données variables via "FormulaR1C1 "
    Par electrons dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/02/2014, 15h09
  2. [XL-2010] Ecrire une formule avec condition
    Par Philippe76 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/01/2013, 15h02
  3. [XL-2000] Ecrire une formule avec des variables
    Par mollus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/06/2011, 13h31
  4. [VBA-Excel] Calcul d'une formule avec une inconnue
    Par micwiss dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/10/2006, 16h04
  5. Copier une formule avec vba
    Par NAMORJOSE dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/05/2006, 00h12

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