Aidez moi svp sur macro excel
RésoluJe 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
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.
-
Contributeur
-
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 -
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 -
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 -
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 ;-)
-
-
@titineet donc ça roule maintenant ?
-
@nikomaniaNon sa bloque entre le wend!!
-
@titineentre le while et le wend!!
-
@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
-
-
ContributeurLa 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...-
-
@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..
-
-
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
-
-
@titineet si t'appuies sur F5 ?
-
@nikomaniaC'est vrai avec F5 ça marche nickel!!
Merci!!
-
-
Merci beaucoup!!
Maintenant, j'aimerai pourvoir le tirer jusqu'à Total toujour dans la ligne 6.*
Range("F65536").Select
Range("F6", Selection.End(xlUp)).Select