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 :

Généralisation de ma formule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Par défaut Généralisation de ma formule
    Bonjour,

    J'aimerai savoir si il existe un moyen de généraliser le code ci dessous afin que je puisse appliquer la formule pour un nombre variable de ligne.

    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
    Sub tableauC1OK()
    'Test 1
    Dim i As Integer
     
    For i = 3 To Sheets(3).Range("D2").Value
     
     
    If Sheets(i).Tab.Color = RGB(255, 0, 0) Then
     
    Sheets(i).Select
     
    Range("K2").Value = "=RC[-3]"
     
    Range("K3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-5]-R2C6<366,RC[-3]+R[-1]C,0)"
    Range("K3").Select
    Selection.AutoFill Destination:=Range("K3:K20"), Type:=xlFillDefault
     
     
     
    Range("L3").Value = "=RC[-4]"
     
    Range("L4").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-6]-R3C6<366,RC[-4]+R[-1]C,0)"
    Range("L4").Select
    Selection.AutoFill Destination:=Range("L4:L20"), Type:=xlFillDefault
     
     
     
    Range("M4").Value = "=RC[-5]"
     
    Range("M5").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-7]-R4C6<366,RC[-5]+R[-1]C,0)"
    Range("M5").Select
    Selection.AutoFill Destination:=Range("M5:M20"), Type:=xlFillDefault
    Merci par avance

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par had4789 Voir le message
    afin que je puisse appliquer la formule pour un nombre variable de ligne.
    Quelle formule ?

  3. #3
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonjour, effectivement quelle formule donc un peu au pif.
    si le but est de recopier sur plusieurs feuilles ce que vous coller dans la premiere alors:


    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 tableauC1OK()
    Dim ws As Worksheet
    Dim i As Integer
     
    For i = 3 To Sheets(3).Range("D2").Value
    Set ws = Sheets(i)
        If ws.Tab.Color = RGB(255, 0, 0) Then
     
        ws.Range("K2").Value = "=RC[-3]"
        ws.Range("K3:k20").FormulaR1C1 = "=IF(RC[-5]-R2C6<366,RC[-3]+R[-1]C,0)"
     
        ws.Range("L3").Value = "=RC[-4]"
        ws.Range("L4:l20").FormulaR1C1 = "=IF(RC[-6]-R3C6<366,RC[-4]+R[-1]C,0)"
     
        ws.Range("M4").Value = "=RC[-5]"
        ws.Range("M5:m20").FormulaR1C1 = "=IF(RC[-7]-R4C6<366,RC[-5]+R[-1]C,0)"
        End If
    Next i
     
    End Sub
    Fait la meme chose que votre code, en plus simple, et sur plusieurs feuilles

  4. #4
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Par défaut
    Bonjour, pardon de ce manque de précision.

    keygen08 a parfaitement compris ce que je voulais faire.

    Je veux juste poussez la simplification encore plus loin pour n'avoir que deux ligne et des variables après.

  5. #5
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Je suis vraiment pas sur que ce soit un cadeau a celui qui passera derriere

    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
    Sub tableauC1OK()
    Dim ws As Worksheet
    Dim i As Integer
     
    For i = 3 To Sheets(3).Range("D2").Value
    Set ws = Sheets(i)
        If ws.Tab.Color = RGB(255, 0, 0) Then
            For j = 1 To 3
            ws.Cells(j + 1, 10 + j).Formula = "=RC[-" & 2 + j & "]"
            ws.Range(ws.Cells(2 + j, 10 + j), ws.Cells(20, 10 + j)).Formula = "=IF(RC[-" & 4 + j & "]-R" & 1 + j & "C6<366,RC[-" & 2 + j & "]+R[-1]C,0)"
            Next j
        End If
    Next i
     
    End Sub

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

Discussions similaires

  1. Formule du binôme généralisée
    Par hibouchka dans le forum MATLAB
    Réponses: 3
    Dernier message: 29/05/2011, 19h16
  2. [XL-2007] Généraliser des formules mathématiques
    Par SmileSoft dans le forum Excel
    Réponses: 7
    Dernier message: 12/09/2009, 12h33
  3. [Crystal] Formules ...
    Par Antichoc dans le forum Formules
    Réponses: 3
    Dernier message: 25/11/2003, 10h52
  4. [Formule] Lever et coucher du soleil
    Par psl dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/10/2002, 16h37
  5. [reseaux] Comment creer un compte user à partir d'un formul avec perl
    Par oulai_evado dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 01/10/2002, 19h54

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