Compléter un code par un test
Résolu/Fermé
diabolo5495
Messages postés
112
Date d'inscription
lundi 15 juillet 2013
Statut
Membre
Dernière intervention
10 février 2015
-
23 juil. 2013 à 08:33
diabolo5495 Messages postés 112 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 10 février 2015 - 23 juil. 2013 à 10:29
diabolo5495 Messages postés 112 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 10 février 2015 - 23 juil. 2013 à 10:29
A voir également:
- Compléter un code par un test
- Test performance pc - Guide
- Test composant pc - Guide
- Redmi note 13 5g test - Accueil - Téléphones
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code asci - Guide
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
23 juil. 2013 à 08:46
23 juil. 2013 à 08:46
Bonjour,
Plusieurs choses me gênent dans ce code :
1- dans la variable mot_chercher tu insères une valeur incomplète ("*" blabla "*"). Puis, après dans le code, tu utilises Lookat:=xlwhole. En fait, la propriété lookat de .find te permet de chercher une partie ou le tout.
Donc au lieu de mettre des * et le lookat:=xlwhole, tu peux indiquer :
2- Tu cherches dans toute ta feuille après le mot personne. Puis, tu renvoie une valeur contenue deux colonnes à GAUCHE de l'endroit trouvé (RngCherche.Offset(0, -2).Value). C'est source de plantage si ta macro trouve personne en colonne A ou B...
Sinon, essaye ceci (en gras les modifs) :
Plusieurs choses me gênent dans ce code :
1- dans la variable mot_chercher tu insères une valeur incomplète ("*" blabla "*"). Puis, après dans le code, tu utilises Lookat:=xlwhole. En fait, la propriété lookat de .find te permet de chercher une partie ou le tout.
Donc au lieu de mettre des * et le lookat:=xlwhole, tu peux indiquer :
mot_chercher = "Personne" Set RngCherche = Sheets("Pilotage").Cells.Find(mot_chercher, lookat:=xlPart)
2- Tu cherches dans toute ta feuille après le mot personne. Puis, tu renvoie une valeur contenue deux colonnes à GAUCHE de l'endroit trouvé (RngCherche.Offset(0, -2).Value). C'est source de plantage si ta macro trouve personne en colonne A ou B...
Sinon, essaye ceci (en gras les modifs) :
Sub Personne() Dim RngCherche As Range Dim mot_chercher As String, firstAddress As String Dim i As Integer i = 2 'le premier mot trouvé sera placé en B2 de la Feuil3 mot_chercher = "Personne" Set RngCherche = Sheets("Pilotage").Cells.Find(mot_chercher, lookat:=xlPart) If Not RngCherche Is Nothing Then firstAddress = RngCherche.Address Sheets("Personne").Range("B" & i) = RngCherche.Offset(0, -2).Value If RngCherche.Offset(0, 2) = 100 Then Sheets("Personne").Range("B" & i).Interior.ColorIndex = 3 i = i + 1 Do Set RngCherche = Sheets("Pilotage").Cells.FindNext(RngCherche) Sheets("Personne").Range("B" & i) = RngCherche.Offset(0, -2).Value If RngCherche.Offset(0, 2) = 100 Then Sheets("Personne").Range("B" & i).Interior.ColorIndex = 3 i = i + 1 Loop While Not RngCherche Is Nothing And RngCherche.Address <> firstAddress Else MsgBox "Pas de tâche pour" + mot_chercher End If Set RngCherche = Nothing End Sub
f894009
Messages postés
17239
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
10 février 2025
1 713
23 juil. 2013 à 08:41
23 juil. 2013 à 08:41
Bonjour,
deux vers la droite l'offset doit etre positif donc pas ceci:
Sheets("Personne").Range("B" & i) = RngCherche.Offset(0, -2).Value
mais:
Sheets("Personne").Range("B" & i) = RngCherche.Offset(0, 2).Value
Bonne suite
deux vers la droite l'offset doit etre positif donc pas ceci:
Sheets("Personne").Range("B" & i) = RngCherche.Offset(0, -2).Value
mais:
Sheets("Personne").Range("B" & i) = RngCherche.Offset(0, 2).Value
Bonne suite
diabolo5495
Messages postés
112
Date d'inscription
lundi 15 juillet 2013
Statut
Membre
Dernière intervention
10 février 2015
27
23 juil. 2013 à 08:45
23 juil. 2013 à 08:45
Cet offset est bien négatif car il permet de copier le texte de la cellule qui se trouve deux colonnes avant pour la coller dans une autre page ;-) mais merci quand même d'avoir répondu
23 juil. 2013 à 08:56
23 juil. 2013 à 09:03
23 juil. 2013 à 09:06
23 juil. 2013 à 09:16
23 juil. 2013 à 09:17