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 :

Calcul de lignes automatiques


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Points : 95
    Points
    95
    Par défaut Calcul de lignes automatiques
    Bonjour,

    Je sais qu'il y a une fonction somme dans Excel, mais ce que je cherche c'est avoir c'est le nombre de lignes remplies. Mais en fait, ça va plus loin que ça. Le résultat devras se trouver à la fin d'une colonne où il y a des lignes vides et ce nombre devra toujours rester à la fin de la colonne même lorsque des valeurs sont rajoutées. De plus elle devra apparaitre à la fin de ma recherche en affichant le nombre de lignes du résultat de la recherche.

    Merci.

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Humm un p'tit fichier exemple?
    Je te met quand même une piste mais bon j'ai pas toutes les infos je pense.
    Pour ce qui est de l'avoir toujours en fin de colonne, il suffit d'insérer les lignes au dessus de la cellule ayant la formule
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour chicard salut mon ami Qwaz le forum d autres infos pour aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
       Dim i As Long, z As Long
         i = Sheets("Feuil1").Cells.SpecialCells(xlCellTypeConstants).Count
         z = Cells.Find("*", , , , , xlPrevious).Row + 1
         MsgBox "nb..lignes rempliees   " & i & "    premiere ligne vide  " & z
      End Sub
    SALUTATIONS

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Points : 95
    Points
    95
    Par défaut
    Merci Laetitia, mais en fait un msgbox ici ne convient pas à ce que je cherche à faire.

    Comme demandé plus haut, je joins le fichier.

    Vous remarquerez une fonction de recherche et une de ré affichage de données qui me donne entière satisfaction. Donc ce que je cherche c'est que sur le fichier non traités au niveau de la ligne 102 (mais cela pourrais augmenter) de la colonne C, c'est avoir le nombre de ligne du fichier (on pourrait compter le nombre de ligne de A qui est toujours renseigné).

    Ensuite ce résultat doit ce mettre à jour, lorsque je rajoute une ligne et lorsque j'effectue une recherche (mes recherche masque les lignes inappropriées)

    Exemple: le fichier original comporte 100 lignes -2 pour les titres donc à la fin de mon fichier j'ai 98. Je fais une recherche et il me reste 8 lignes. J'enlève 2 pour les titres et là sous ma colonne je me retrouve avec 6.

    PS:Est_ce un i majuscule ou un l?

    PS2: seules la seconde feuille est à utiliser les autres ne sont pas concernés.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re le fil le forum si j ai compris
    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
    Private Sub Bouton_Rechercher_Click()
    Dim thecell As Range, R As Double, l As Double, z As Long
    Feuil6.Activate
    Application.ScreenUpdating = False
    z = Cells.Find("*", , , , , xlPrevious).Row + 2
    For Each thecell In Range("A1", Cells(Rows.Count, "A").End(xlUp))
        If Not IsEmpty(thecell) Then
            With thecell.Offset(1, 2)
         .EntireRow.Hidden = Year(CDate(.Value)) <> CInt(TextBox2.Value)
            End With
          End If
    Next
     If (TextBox1.Value <> "") Then
        For Each thecell In Range("A1", Cells(Rows.Count, "A").End(xlUp))
            If IsEmpty(thecell) Then
            With thecell.Offset(1, 2)
      .EntireRow.Hidden = Month(CDate(.Value)) <> CInt(TextBox1.Value)
            End With
            End If
        Next
    End If
    Unload UserForm_Rechercher
    For l = 1 To Cells(65536, 1).End(xlUp).Row
        If Not Rows(l).Hidden Then R = R + 1
    Next l
    Cells(z, 3) = R - 2
    End Sub
    SALUTATIONS

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Points : 95
    Points
    95
    Par défaut
    Salut,

    En fait ton code résout une partie de mon problème et en pose un petit autre.

    En fait, chaque fois que je fais une recherche ou que je ré affiche mes données il me marque le nombre d'enregistrement les uns au dessous des autres.

    Exemple : j'appuie trois fois sur ré affichage des données, je me retrouve avec trois fois le chiffres 98 écris les uns en dessous des autres.

    Ensuite, je voudrais qu'au niveau de l'enregistrement des données, l'incrémentation de mon "compteur" augmente automatiquement.

  7. #7
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re, chicard la macro demasque a adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub demasque()
    Feuil6.Activate
    Cells.Select: Selection.EntireRow.Hidden = False: [a1].Select
    Range("c65536").End(xlUp).Select
    If Selection.Value Like "##/##/####" Then Exit Sub Else Selection.Delete
    End Sub
    SALUTATIONS

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Points : 95
    Points
    95
    Par défaut
    Bien que ce code efface la valeur de la recherche il faudra que je mette à la suite le code pour faire une recherche sur le nombre de ligne pour avoir le nombre de ligne de mon tableau au ré affichage.

    Y aurait-il un moyen de l'incrémenter automatiquement lors de l'ajout de nouvelles valeurs?

  9. #9
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re,pas sur d avoir compris je t ais donner ce code pour avoir le nombre de lignes
    a adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = Sheets("Feuil1").Cells.SpecialCells(xlCellTypeConstants).Count
    SALUTATIONS

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Points : 95
    Points
    95
    Par défaut
    Là c'est moi qui comprend plus.

    Cette ligne de code est sensé faire quelque chose. Le code que tu as produit juste avant est pratique dans le sens où il me permet d'effacer la valeur obtenu sur le nombre de lignes.

    C'est pas important. Serait-i possible de rajouter du texte ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For l = 1 To Cells(65536, 1).End(xlUp).Row
        If Not Rows(l).Hidden Then R = R + 1
    Next l
    Cells(z, 3) = R - 2 'ici
    pour avoir un résultat sous la forme (après exécution et sana MsgBox):
    ..
    Tableau
    ..
    Nombre d'actions = (valeur retourné par le code)

  11. #11
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re pas facile a comprendre tu parles d un compteur !!!
    tu veus qu a chaque fois que tu fais une recherche un compteur s incremente??dans l hypothese que c est cela on incremente ou le compteur dans une cellule ??
    SALUTATIONS

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Points : 95
    Points
    95
    Par défaut
    Non c'est pas ça.

    Je parle d'un compteur c'est vrai mais il s'incrémente juste quand je fais une nouvelle entrée.

    Explication: j'ai mon tableau avec disons vingt entrées. Je mets mon fameux compteur deux lignes en dessous. Mon compteur comporte donc la valeur 20.

    Je fais une nouvelle entrée donc j'en suis en 21 entrée et à la ligne en dessous mon compteur passe à la valeur 21 tout seul (il peut y avoir une fonction qui controle toutes les x minutes le nombre de lignes ou qui détecte une entrée).

    Voilà c'est tout.

  13. #13
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re chicard pas si simple vu que le code est basee sur les dernieres lignes il faut revoir ca pour le compteur je vois ce que tu veus faire je pense qu avec ontime cela peut se faire a reflechir!!!
    SALUTATIONS

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Points : 95
    Points
    95
    Par défaut
    A la limite c'est pas grave. Je peux toujours créer une fonction de rafraichissement.

    Par contre par rapport à l'écriture d'une phrase sans MsgBox, est-ce possible (écriture sur une ou plusieurs cellules de la même ligne)?

  15. #15
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re tu peus avec & exemple

    SALUTATIONS

  16. #16
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Je comprend pas quel est le probleme??
    Ca se fait facilement par formule, il suffit de mettre cette formule (je me suis un peu planté la derniere fois, ma formule ne tenait pas compte des cellule contenant un numeric)
    dans la cellule ligne 23 par exemple.
    Lorsque tu vas inserer une ligne (y compris ligne 21) excel va automatiquement augmenter la plage ("A1:A20") pour prendre en compte la ligne créée.

    Si tu tiens vraiement a le faire par le code, ce ne sera pas simple, car tu vas etre confronté au probleme suivant, a soir qu'il va etre tres difficile de savoir ou se trouve la cellule devant recevoir le resultat, en effet si tu as des vides dans ta liste comment savoir si la derniere cellule non vide de la colonne est la case contenant le resultat ou la derniere ligne du tableau. Pourquoi? Imagines au 1er tour de ta macro (cellule ou tu veux le resultat vide)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(rows.count,"A").End(XlUp)
    Nous selectionne la derniere ligne du tableau, et ce sera pareil si pour une raison x ou y tu vidais la case contenant le resultat (fausse manip par exemple).
    Au tour d'apres, la meme ligne de code pointera sur la cellule contenant le resultat, mais ne devra pas etre prise en compte pour calculer le nouveau resultat ...

    Une solution serait de mettre la case ou tu souhaites avoir le resultat en couleur, ainsi tu cherches la case en couleur, tu regardes les cellules au dessus (en prennant en compte que tu veilles 2 lignes vides entre ton tableau et la cellule contenant le resultat), si les 2 cases ne sont pas vide, c'est que l'une d'elle a ete utilisée pour rajouter une entrée, ainsi tu decalera la case colorée d'un cran vers le bas (en vidant et decolorant l'ancienne) et en lui mettant le new resultat a l'interieur.

    Voila comment je vois la chose.
    Bon courrage
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  17. #17
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Points : 95
    Points
    95
    Par défaut
    Ben finalement j'ai abandonné l'idée. Ca suffira pour l'utilisation qu'il en font. C'était surtout pour un effet de style et de forme.

    Désolé de n'avoir vu ton message que maintenant Qwazerty. Le sujet va passer en résolu même s'il ne l'est pas.

    Merci pour votre aide.

Discussions similaires

  1. Insérer une ligne automatiquement dans une autre tab
    Par davyd dans le forum Langage SQL
    Réponses: 10
    Dernier message: 29/03/2005, 17h08
  2. nombres d'images sur une lign automatique
    Par AnKhCHFR dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/03/2005, 11h52
  3. [JOptionPane]retour à la ligne automatique ?
    Par Pill_S dans le forum Composants
    Réponses: 5
    Dernier message: 01/12/2004, 11h55
  4. [JTextPane] passage a ligne automatique.
    Par bibi-kha dans le forum Composants
    Réponses: 9
    Dernier message: 02/09/2004, 11h10
  5. Split et calcul de ligne du tableau
    Par La_picolle dans le forum ASP
    Réponses: 6
    Dernier message: 27/08/2003, 15h58

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