Aide sur vba

Bonjour, sur une de mes application vba, je cherche à sélectionner dans un tableau excel la ligne entière de la cellule active, mais le code vb que j'ai ne me donne pas satisfaction.
si quelle qu'un a une proposition à me faire, je suis preneur!!
Merci.

5 réponses

  1. Contributeur
    Re,
    Le plus simple serait que tu mette un classeur à disposition, sur Cjoint.fr par exemple
    Avec une feuille avant modif et une autre feuille qui montrerait le résultat souhaiter.
    Des données fictives bien entendu.
    A+
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    0
    1. bonjour moby 79,

      Essai peut etre d'introduire ce code à la place de ton entirerow, il va selectionner la premiere cellule de la ligne de la cellule active et supprimer alors toute la ligne !

      par exemple:
      ActiveCell.EntireRow.Cells(1).Select
      ActiveCell.EntireRow.Select

      j'espere que ça va t'aider

      boomer
      0
      1. Merci pour la rapidité de la réponse, mais j'utilise déjà cette propriété.
        Dans mon cas, j'ai un tableau avec des références et des quantités.
        J'ai créer une macro qui me retourne uniquement la valeur de la quantité cumulé de chaque référence.
        Ensuite ma seconde macro supprime les doublons de références.
        Ceci me permet de faire une nomenclature détaillé, et les macros mon font le tableau de commande.

        Or voici le tableau de départ :

        ..... désignation ..... ref..... qte ..... Qte cumulé
        2 ..... crayon bleu ..... cb..... 1 ..... 2
        20 ..... crayon rouge ..... cr..... 9 ..... 20
        46 ..... crayon vert ..... cv..... 6 ..... 46
        20 ..... crayon rouge ..... cr ..... 4 ..... 20
        20 ..... crayon rouge ..... cr ..... 7 ..... 20
        46 ..... crayon vert ..... cv ..... 40 ..... 46
        2 ..... crayon bleu ..... cb ..... 1 ..... 2

        (sur la colonne tout a gauche, j'ai fais un copier/coller de la colonne quantité cumulé)

        et voici le résultat après l'exécution de la macro supprime doublons

        ..... désignation ..... ref ..... qte ..... Qte cumulé
        2 ..... crayon bleu ..... cb ..... 1 ..... 2
        20 ..... crayon rouge ..... cr ..... 9 ..... 46
        46 ..... crayon vert ..... cv ..... 6 ..... 46

        Dans la colonne Qte cumulé, j'ai un décalage qui ce créer lors de la suppression de la ligne, donc mes résultat sont erronés. Et dans la colonne tout à gauche, les résultat sont rester en face de leur référence.

        Ce que je voudrais, c'est que les résultat de la colonne qte cumulé reste en face de leur référence.

        Voici le code vb:

        Sub supprimeDoublons()

        'Récupère l'adresse de la cellule dans une variable MaCellule

        MaCellule = InputBox("Veuillez saisir l'adresse de la 1ere cellule à comparer")

        'Sélectionne la cellule indiquée
        Range(MaCellule).Select

        'Trie le tableau sur cette celule
        ActiveCell.CurrentRegion.Sort Key1:=Range(MaCellule), Order1:=xlAscending, Header:=xlYes

        'mémorise le contenu de la cellule en cours et l'affecte à donnee1
        donnee1 = ActiveCell

        'descend d 'une ligne
        ActiveCell.Offset(1, 0).Select

        'tant que la cellule n'est pas vide
        While ActiveCell <> ""

        'vérifie si le contenu de la cellule en cours est égal à donnee1
        If ActiveCell = donnee1 Then

        'si oui, supprime la ligne entière
        ActiveCell.EntireRow.Delete

        'Private Sub Worksheet_Change(ByVal Target As Range)

        'remonte d'une ligne
        ActiveCell.Offset(-1, 0).Select

        'mémorise à nouveau le contenu de la cellule
        donnee1 = ActiveCell

        'descend d'une ligne
        ActiveCell.Offset(1, 0).Select

        Else

        'mémorise le contenu de la cellule en cours de la ligne suivante et l'affecte à donnee1
        donnee1 = ActiveCell

        'descend d'une ligne
        ActiveCell.Offset(1, 0).Select

        'fin de la vérification
        End If

        'fin de la boucle (on répète les instructions tant que la cellule en cours d'examen contient quelque chose). Sinon, le programme s'arrête
        Wend

        End Sub

        Merci pour vos réponses
        0
        1. Contributeur
          Bonjour,
          mais le code vb que j'ai ne me donne pas satisfaction.
          Montre ce code qui ne te donne pas satisfaction, nous pourrons probablement le rendre opérationnel.
          En attendant penche toi sur la propriété EntireRow
          A+
          Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
          NOTE : Je ne répond pas aux MP pour les questions techniques.
          0