macro Excel - VB/VBA/VBS - Programmation
Marsh Posté le 12-07-2006 à 09:27:22
une boucle
for i=1 to 120 '(exemple)
if range("A"&i).value = "TY" then
'ton tralala le caht ici
end if
next i
par la suite, tu fais un test avec range("B"&i).value et tu refais ton code selon ce que tu souhaites faire sur tes cellules...
Marsh Posté le 12-07-2006 à 09:38:06
ben pour faire claire, j'ai fai ça:
Sub Trier_les_infos()
'
' Trier_les_infos Macro
'
Dim pas As Integer
Dim val As Double
Worksheets("da_essais" ).Select
pas = 1
For pas = 1 To ActiveCell.SpecialCells(xlCellTypeLastCell).Row
While Range("A" & pas).Value <> "TY"
pas = pas + 1
If Range("A" & pas).Value = "TY" Then
val = Range("B" & pas).Value
Worksheets("Feuil3" ).Select
Range("F14" ).Value = val
Worksheets("da_essais" ).Select
End If
Wend
Next
End Sub
mais ça marche pas... Il m'inscris toujours les résultat dans la case F14 et la boucle est infini...
Marsh Posté le 12-07-2006 à 09:48:04
ton code n'est pas des plus efficaces (mais qu'est-ce que je suis prétentieux des fois moi...)
Sub Trier_les_infos()
'
' Trier_les_infos Macro
'
Dim i As Integer 'pour les compteur, reste avec une seule lettre c plus facile
Dim val As Double
For i = 1 To 100 'fixe une limite arbitraire que tu sais que tu n'atteindras pas, comme ca tu évite un retour foireux de ta fonction
If Range("da_essais!A" & i).Value = "TY" Then
val = Range("da_essais!B" & i).Value
'la ligne d'après je la comprends pas trop, c'est normal que seul F14 bouge, mais si tu m'explique un eu plus ton histoire je peux essayer.
Range("Feuil3!F14" ).Value = val
Worksheets("da_essais" ).Select
End If
Next
End Sub
Marsh Posté le 12-07-2006 à 09:48:15
Il est censé faire quoi ton
ActiveCell.SpecialCells(xlCellTypeLastCell).Row ?
Marsh Posté le 12-07-2006 à 09:52:43
qqe modifs qui devrait améliorer
Sub Trier_les_infos()
Dim pas As Integer
Dim pas2 As Integer
Dim val As Double
Worksheets("da_essais" ).Select
pas = 1
pas2=1
While Range("A" & pas).Value <> ""
If Range("A" & pas).Value = "TY" Then
Worksheets("da_essais" ).Range("F"& pas2).Value = Range("B" & pas).Value
pas2 = pas2+1
End If
Loop
End Sub
Marsh Posté le 12-07-2006 à 10:03:02
le "ActiveCell.SpecialCells(xlCellTypeLastCell).Row" est censé détecté la dernière ligne écrite de mon tableau pour éviter que la boucle n'aille jusqu'à 100000...
Ainsi, ça peut s'adapter, je pense, à un tableau qui fait 30 ligne, comme un ki en fai 500.
Marsh Posté le 12-07-2006 à 10:04:18
damienCYS, pourquoi tu mets un Loop à la fin alos qu'il n'y a pas de Do?
Marsh Posté le 12-07-2006 à 10:07:19
jpcheck, ton programme marche et ça c super cool... Mais comment fait tu pour qu'il évite de mettre tous les résultat dans F14.
ex: le premier dan A1, le deuxième dans A10, troisième A20....
Marsh Posté le 12-07-2006 à 10:12:43
pas = pas+1 juste avant la fin de la boucle (wend ou loop)
Marsh Posté le 12-07-2006 à 10:35:31
merci beaucoup à tous...
La première partie de mon programme marche.
Je vais essayé de me débrouiller pour la suite, mais c pas gagné....
rester à vos clavier.. lol
encore merci
Marsh Posté le 12-07-2006 à 10:39:02
tu peux mettre un autre compteur de type j
avec j=0 au depart
lorsque tu as la valeur "TY" tu incrémentes ton j et tu mets
j=j+1
Range("da_essais!F"& j*10).Value = Range("B" & i).Value
tu auras alors tes résultats progresssivment dans F10, F20, F30...
Marsh Posté le 12-07-2006 à 08:57:49
Bonjour à tous...
J'aimerais avoir un petit coup de main pour effectuer une macro Excel qui devrait être toute simple pour vous, mais qui est à la limite de l'impossible pour moi ..
Explication:
Je possède un tableau Excel dans lequel il y a plein d'info. Je voudrai donc retrouver dans la colonne A toutes les cases avec inscrit "TY". Dès qu'un "TY" est trouvé, le doit récupérer la valeur associée en colonne B et mettre le tout dans une nouvelle feuille Excel pour n'avoir, qu'à la fin, le récapitulatif des valeurs de "TY".
Par ex:
En A13 et en A25 il y a des "TY". Associés en B13 et B26 de "1" et "3".Je voudrai donc que, dans une autre feuille, il y ai: - en A1: "TY"
- en B1: "1"
- en A10: "TY"
- en B10: "3"
...
Ceci est donc la première partie de ma réalisation. Mais il y a une suite:
Selon la valeur de "TY", dans mon fichier de départ, il faut que j'aille chercher d'autre info dans ce même fichier.
Ex:
si en B13 j'ai "1" (comme tout à l'heure), il faudrait que j'aille chercher les valeurs des cases A15 avec B15, A17 avec B17 et A19 avec B19 et C19. Et toute ces valeurs là, pouvoir les mettre dans la feuille récapitulative, à la suite de (A1 B1), c'est-à-dire à partir de A2.
Si il y a des choses pas très claires, dites-le moi et j'expliquerais plus en détail...
mais j'ai vraiment besoin de votre aide....
Merci d'avance