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