Aidez moi svp sur macro excel

Résolu
Bonjour,
Je fais une macro et j'aimerai que de la cellule A6 tout soit sélectionneé jusqu'à une cellule "Total"; qui est sur la même ligne. Puis que cette sélection s'étend vers le bas jusqu'à une cellule "Total" sur la colonne A.

Merci.
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

Résumé de la discussion

Cette discussion porte sur une macro Excel qui, à partir de la cellule A6, sélectionne jusqu'à une occurrence de 'Total' sur la ligne, puis étend la sélection vers le bas jusqu'au 'Total' en A. Parmi les réponses, une solution propose un script VBA utilisant deux boucles While et des adresses de cellules pour définir la plage depuis A6 jusqu'au 'Total', puis sur la colonne A. Certaines contributions soulignent des problèmes liés à la casse de 'Total' ou à des tableaux importés d'Access, tandis que d'autres évoquent l'usage de F5 pour exécuter la macro. D'autres échanges proposent d'adapter le critère de comparaison 'Total' selon la casse et le contexte, ou d'envisager une approche alternative lorsque l'élément total est traité comme texte.

Bobot (l’IA à votre service)
  1. Contributeur
    2
    1. Je cherche toujours mais je n'est pas de réponse convenable et j'essaye d'approfondir avec vous.
      0
  2. forcément j'avais pas vu que ton tableau commencait à la cellule A6 xD

    essaye ca

    Dim i As Integer
    Dim j As Integer
    i = 1
    j = 6
    Range("A6").Select
    While Cells(j, i).Value <> "total"
    i = i + 1
    Wend
    strad = Cells(j, i).Address(RowAbsolute:=False, ColumnAbsolute:=False)
    Range(Selection, strad).Select
    While Cells(j, 1) <> "total"
    j = j + 1
    Wend
    strad = Cells(j, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
    Range(Selection, strad).Select
    End Sub
    1
    1. Salut!

      s'agit-il d'un tableau non interrompu après lequel il y a une ligne / colonne vide ?

      si c'est le cas tu peux essayer ce code

      Range("A1").Select
      Range(Selection, Selection.End(xlToRight)).Select
      Range(Selection, Selection.End(xlDown)).Select

      ca te selectionne de la cellule A1 jusqu'à la cellule A quelque chose (la dernière où il y a un texte avant une case vide)

      puis ça fait la même chose en direction du bas

      je sais pas si j'ai été clair...n'hésites pas
      0
      1. Merci Beaucoup mais ta formule ne fais pas se que je veux car c'ast une tableau qui sort d'ACCESS et il reste des données à la l'arrière mais non visible.
        C'est pour sa que je parle de Total!!
        0
    2. Hi

      Je viens de tester un truc

      Dim i As Integer
      Dim j As Integer
      i = 1
      j = 1
      Range("A1").Select
      While Cells(j, i).Value <> "total"
      i = i + 1
      Wend
      strad = Cells(j, i).Address(RowAbsolute:=False, ColumnAbsolute:=False)
      Range(Selection, strad).Select
      While Cells(j, 1) <> "total"
      j = j + 1
      Wend
      strad = Cells(j, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
      Range(Selection, strad).Select

      c'est peut etre pas le plus simple mais ça marche chez moi
      0
      1. Merci de chercher avec moi, ta formule bloque entre les premier while et wend
        0
    3. Après si ton "total" est écrit avec le T en majuscule, il faut que tu le change dans le code vba pour que ça marche ;-)
      0
      1. Oui j'ai changer car il est en majuscule.
        0
      2. @titineet donc ça roule maintenant ?
        0
      3. @nikomaniaNon sa bloque entre le wend!!
        0
      4. @titineentre le while et le wend!!
        0
      5. @titinemais t'as pris le deuxième code corrigé que je t'ai posté ? (j'avais pas vu que ton tableau commencait en A6)

        je te le remet si t'as sauté le message

        Dim i As Integer
        Dim j As Integer
        i = 1
        j = 6
        Range("A6").Select
        While Cells(j, i).Value <> "Total"
        i = i + 1
        Wend
        strad = Cells(j, i).Address(RowAbsolute:=False, ColumnAbsolute:=False)
        Range(Selection, strad).Select
        While Cells(j, 1) <> "Total"
        j = j + 1
        Wend
        strad = Cells(j, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
        Range(Selection, strad).Select
        End Sub
        0
    4. Contributeur
      La solution qu'a proposé Mike 31 marche chez lui...
      La solution qu' a propsé Nikomania marche chez lui...
      La solution que j'ai proposé marche chez moi...

      Donc...
      0
      1. C'est bon!!
        Moi, il bloque c'est tout!!
        Il ne me met pas de message
        0
      2. @titineheu...il bloque...
        en général quand ça bloque c'est que t'as une boucle sans fin..mais dans ce cas précis elle ne peut pas être sans fin vu que le nombre de colonnes et de lignes ne sont pas illimitées dans Excel...donc il te mettra forcément un message d'erreur quand il voudra tester une cellule qui n'existe pas...

        a la limite envoie moi ton fichier par mail que j'y jette un coup d'oeil..
        0
    5. question con...t'es sûr que tes cellules "Total" ne contiennent que "Total" dedans ? vu que c'est une exportation, vérifie que t'as pas d'espace avant ou un truc du style
      0
      1. En fait, sa marche car il faut appuyer longtemps sur F8 puis il se débloque!!
        C'est inexplicable, non!!!
        0
      2. @titineet si t'appuies sur F5 ?
        0
      3. @nikomaniaC'est vrai avec F5 ça marche nickel!!
        Merci!!
        0
    6. Merci beaucoup!!
      Maintenant, j'aimerai pourvoir le tirer jusqu'à Total toujour dans la ligne 6.*

      Range("F65536").Select
      Range("F6", Selection.End(xlUp)).Select
      0
      1. j'aimerai avoir une formule qui me sélectionnne chaque colonne jusqu'à total.
        Pas une sélection d'une plage.
        Merci par avance
        0
      2. j'aimerai avoir une formule qui me sélectionnne chaque colonne jusqu'à total.
        Pas une sélection d'une plage.
        Merci par avance
        0