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 :

fonction VBA plage de cellules


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 3
    Par défaut fonction VBA plage de cellules
    Bonjour à tous
    je suis nouveau sur le forum.
    J'utilise un macro pour faire l'inventaire de mon parc informatique.
    J'utilise la fonction NB.SI
    Actuellement ma plage est E2:E112
    Je voudrais savoir comment sélectionner ma plage pour dire que je veux la plage E2: fin de la colonne de mon tableau.
    Je m'explique si je crée par exemple 3 lignes ma plage ne sera plus E2:E112 mais E2:E115.
    Ma macro ne prendra donc pas en compte les 3 cellules supplémentaires.

  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,
    Une version de ta macro actuelle aurait été pratique sans elle il va faloir te contenter ce qui va suivre

    utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("E2:E" & DerniereLigne)
    (peut être sans le range)

    pour définir DerniereLigne c'est ici

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 3
    Par défaut voici la macro
    bonjour
    en effet voici ma macro
    calcul le total du matériel informatique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Range("B2").Select
        ActiveCell.FormulaR1C1 = "=COUNTIF('materiel info'!R2C5:R112C5,RC[-1])"
        Range("B2").Select
        Selection.AutoFill Destination:=Range("B2:B11"), Type:=xlFillDefault
        Range("B2:B11").Select
        Range("B12").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
        Range("B13").Select
    End Sub
    sur la ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "=COUNTIF('materiel info'!R2C5:R112C5,RC[-1])"
    je souhaite aller à la fin mon tableau

  4. #4
    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,
    une remarqueles select c'est pas top en règle générale tu peux remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    AAAA.select
    selection.BBBBBB
    ou
    activecell.BBBBBB
    par
    Ton code devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Range("B2").FormulaR1C1 = "=COUNTIF('materiel info'!R2C5:R112C5,RC[-1])"
        Range("B2").AutoFill Destination:=Range("B2:B11"), Type:=xlFillDefault
        ("B12").FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
    Pour ta question
    utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=COUNTIF('materiel info'!R2C5:R" & derniereligne & "C5,RC[-1])"
    Bon perso je n'utilise pas els formule avec R1C1 je préfère mettre directement l'addresse du coup il peux y avoir un petit décalage a toi de corriger.

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 3
    Par défaut cela ne fonctionne pas
    bonjour
    j'ai essayé de copier ta formule mais cela ne fonctionne pas
    j'ai 2 feuilles
    la première nommé materiel info avec 112 lignes
    En colonne E la référence de mes PC (exemple Dell 4600, Dell 3100, Dell 4100)
    j'ai plusieurs PC qui ont la même référence
    la deuxième feuille récapitulatif
    Colonne A la référence des PC de la colonne E
    Colonne B je fais une fonction NB.SI avec la plage de la colonne E de la feuille materiel info et comme critère la cellule de la colonne A
    ma macro
    je me place en B2 d ela feuille récapitulatif
    j'insére la fonction NB.SI =NB.SI('materiel info'!$E$2:$E$112;A2)
    Je mets les $ à la cellule E2 E112
    je recopie la formule jusqu'à la cellule B11
    en B12 je fais la somme automatique de B2:B11
    et j'arrête la macro
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. fonction modifier plage de cellule
    Par estopa88 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/05/2012, 23h32
  2. [XL-2003] Utiliser une fonction VBA dans une cellule
    Par zakuli dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/08/2009, 19h23
  3. VBA - Plage de cellules
    Par ZIED dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/01/2006, 05h49
  4. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 11h28

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