Boucle rechercher
Fermé
J0K0
Messages postés
163
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
19 juillet 2019
-
Modifié le 17 juil. 2019 à 17:58
yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 - 19 juil. 2019 à 11:47
yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 - 19 juil. 2019 à 11:47
A voir également:
- Boucle rechercher
- Rechercher ou entrer l'adresse - Guide
- Pc s'allume et s'éteint en boucle - Forum Matériel informatique
- Rechercher par image - Guide
- Rechercher une chanson - Guide
- Vim rechercher - Astuces et Solutions
1 réponse
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
Modifié le 11 juil. 2019 à 08:01
Modifié le 11 juil. 2019 à 08:01
bonjour, merci de choisir le type "basic" quand tu partages du code VBA.
je n'ai pas bien compris ce que tu voulais réaliser. tu sembles tenté par une boucle, as-tu essayé?
as-tu bien mis "option explicit" en début de module?
exemple:
je n'ai pas bien compris ce que tu voulais réaliser. tu sembles tenté par une boucle, as-tu essayé?
as-tu bien mis "option explicit" en début de module?
exemple:
Option Explicit
Private Sub tt()
Dim botte As Range, trouve As Range, annee As String, premier As String
annee = "zzz"
Set botte = Sheets("nouveau").Range("E8:IV8")
Set trouve = botte.Find(What:=annee)
If Not trouve Is Nothing Then
premier = trouve.Address
Set trouve = botte.FindNext(trouve)
Do While premier <> trouve.Address
Set trouve = botte.FindNext(trouve)
Loop
End If
End Sub
Modifié le 17 juil. 2019 à 17:59
Merci pour cette réponse et désolé pour le type du code ... :|
Je ne maîtrise pas encore VBA mais arrive à comprendre pour créer et avancer .... Les boucles ne sont pas du tout maîtrisées ... :(
En effet, un bon commencement mais pas encore à mes fins ....
L'idée est que quand il trouve l'année, il vérifie si dans une cellule spécifique il y a soit Intervention, soit Formation, soit Essai ou soit Relevés puis il met dans une cellule de statistiques la valeur associée, l'idée est de cumuler les valeurs pour en faire un total annuel pour les 4 types ....
Mon code mais il ajoute chaque fois la même valeur ...
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim botte As Range, trouve As Range, annee As String, premier As String 'calculs automatiques If ActiveSheet.Range("C3").Value <> "" Then 'sheets statistiques annee = ActiveSheet.Range("C3").Value 'annee = "zzz" Set botte = Sheets("nouveau").Range("E8:IV8") Set trouve = botte.Find(What:=annee) If trouve Is Nothing Then MsgBox ("Année non trouvée. Vérifier le format de la date en année AAAA.") Else premier = trouve.Address Set trouve = botte.FindNext(trouve) 'intervention If trouve.Offset(2, 0).Value = "Intervention" Then Sheets("statistiques").Range("B6").Value = "" Sheets("statistiques").Range("B6").Value = "=" & trouve.Offset(57, 0).Value '& "+" & valnext End If 'suivant Do While premier <> trouve.Address Set trouve = botte.FindNext(trouve) 'intervention If trouve.Offset(2, 0).Value = "Intervention" Then nbinter = Sheets("statistiques").Range("B6").Value Sheets("statistiques").Range("B6").Value = "" Sheets("statistiques").Range("B6").Value = nbinter & "+" & trouve.Offset(57, 0).Value End If Loop End If Else End If Set botte = Nothing Set trouve = Nothing End Submerci pour cette aide
Modifié le 17 juil. 2019 à 19:07
n'hésite surtout pas à donner un exemple, cela aide parfois à être factuel.
je vois aussi que tu as un peu maltraité le code que j'ai suggéré en #1. en principe, il ne faut rien changer, simplement ajouter du code juste avant la ligne 12. c'est là qu'est le cœur de la boucle.
je ne comprends pas pourquoi tu utilises des formules au lieu de faire les calculs en VBA.
17 juil. 2019 à 19:53
voici le fichier.
Avec les informations écrites tu devrais comprendre normalement ....
https://www.cjoint.com/c/IGrr0B2u6dg
Pour les calculs en VBA : parce que mes connaissances sont limitées encore .... :D
Merci à toi ;)
17 juil. 2019 à 21:24
je suggère que tu développes tes connaissances, peut-être avec des exercices plus simples.
17 juil. 2019 à 23:30
Sheets("statistiques").cells(6,2) = Sheets("statistiques").cells(6,2).Value _ + trouve.Offset(57, 0).Value