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 :

Inserer une formule pour toutes les colonnes vides


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Points : 50
    Points
    50
    Par défaut Inserer une formule pour toutes les colonnes vides
    Bonjour,
    Je voudrais comparer des colonnes 2 à 2.
    j'ai inserer une 3eme colonne à coté de chaque pour inserer ma formule.
    j'ai reussi à faire pour 1.
    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub es()
        Range("c2").Select
        ActiveCell.FormulaR1C1 = "=RC[-2]=RC[-1]"
     Selection.AutoFill Destination:=Range("c2:c" & Range("a180").End(xlUp).Row)
     End Sub
    je veux appliquer cette formule dans toutes autres ie dans celle colorées .
    mai je n'y arrive pas.
    est ce quelqu'un aurait une idée de comment faire .
    en vous remerciant

    voici le resultat que je veux obtenir en pj
    NB: j'ai juste copier qu'une partie de mon fichier initial.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    With ActiveCell
        Range(ActiveCell, Cells(Rows.Count, .Column - 1).End(xlUp).Offset(, 1)).FormulaR1C1 = "=RC[-2]=RC[-1]"
    End With
    End Sub
    La cellule sélectée doit être la première de la colonne.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Points : 50
    Points
    50
    Par défaut
    Bonjour Daniel
    Merci pour ton retour rapide.
    ça marche sauf que je dois activer a chaque fois la cellule destination.
    y'a pas un moyen de se positionner à chaque fois sur la cellule active et appliquer la macro?
    pour rappel j'ai plus de 100 colonnes
    merci
    bien cordialement

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Dim C As Range
    For Each C In Range("C2").Resize(Cells(Rows.Count, 3).End(xlUp).Row, _
        Cells(2, Columns.Count).End(xlToLeft).Column + 1)
        If C.Value = "" And C.Offset(, -1) <> "" And C.Offset(, -2) <> "" Then
            C.Formula = "=" & C.Offset(, -2).Address(0, 0) & "=" & C.Offset(, -1).Address(0, 0)
        End If
    Next C
    End Sub

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Points : 50
    Points
    50
    Par défaut
    Merci Daniel
    j'ai finalement trouvé un moyen plus rapide avec ça
    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 TestBouclesImbriquees()
        Dim Ws As Worksheet
        Dim x As Integer, y As Integer
     
           For Each Ws In ThisWorkbook.Worksheets
     
     
            For x = 2 To 60000
                         For y = 3 To 500 Step 3
                                   Ws.Cells(x, y) = "=RC[-2]=RC[-1]"
                Next y
            Next x
     
        Next Ws
    End Sub
    mais c'est un peu long
    merci en tout cas

  6. #6
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Pour réduire le temps d'exécution, tu peux calculer par macro la dernière cellule X et la dernière colonne Y. Tu me parle de 100 colonne, et tu vas jusqu'a 500. Chaque interaction avec la feuille te fait perdre du temps d'exécution. Pour 10 cellules, c'est dérisoire, mais pour 60 000 x 170 (Environ), tu m'étonne que ça te prenne longtemps.

    Il y a plusieurs méthode pour contourner le problème, mais je pense qu'une première bonne pratique serait de calculer la ligne et la colonne de fin.

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Points : 50
    Points
    50
    Par défaut
    Merci Nico pour les remarques et pour les idées.
    cdt

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

Discussions similaires

  1. [XL-2010] Code aléatoire pour toutes les cellules vides d'une colonne
    Par GADENSEB dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/09/2014, 16h07
  2. [AC-2003] Modifier une propriété pour toutes les requêtes de la Bd
    Par chordially dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/07/2010, 21h54
  3. Une procédure pour toutes les feuilles
    Par docjo dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/10/2009, 07h32
  4. [XL-2002] Export SSIS. Trouver une formule pour tout convertir en texte
    Par cmako dans le forum Excel
    Réponses: 4
    Dernier message: 01/10/2009, 11h25
  5. [Formule]Une seule formule pour toute la colonne ?
    Par marot_r dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/04/2007, 19h19

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