VBA Find
Résolu/Fermé
dudu
-
9 févr. 2011 à 11:29
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 févr. 2011 à 15:13
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 févr. 2011 à 15:13
A voir également:
- VBA Find
- Find and mount - Télécharger - Récupération de données
- Excel compter cellule couleur sans vba - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Ava find - Télécharger - Divers Utilitaires
- Mkdir vba ✓ - Forum VB / VBA
4 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
9 févr. 2011 à 12:25
9 févr. 2011 à 12:25
Bonjour,
Et quand la valeur existe, tu n'a pas d'erreur ? parce que d'après ton code, Boucle1 =0 ?
L'erreur 91 n'est pas en rapport avec ce que tu dis...
Erreur 91 = "Variable objet ou variable de bloc With non définie"
Donc je pense que c'est bien a cause de Boucle1 qui est à 0
A+
Et quand la valeur existe, tu n'a pas d'erreur ? parce que d'après ton code, Boucle1 =0 ?
L'erreur 91 n'est pas en rapport avec ce que tu dis...
Erreur 91 = "Variable objet ou variable de bloc With non définie"
Donc je pense que c'est bien a cause de Boucle1 qui est à 0
A+
Bonjour,
Info
If Not (Plage.Find(ProjetRecherché) Is Nothing) Then Set Posit = Plage.Find(ProjetRecherché) Else MsgBox "Introuvable" End If Adresse = Resul.Address
Info
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
9 févr. 2011 à 15:13
9 févr. 2011 à 15:13
Je n'ai pas ton classeur alors je sais pas tester mais tu pourrais éventuellement mettre...
A+
On Error Goto Fin Posit = Plage.Find(ProjetRecherché) On Error Goto 0Et tu ferais bien d'un peu étudier les mots clés "With" et "End With" ça te ferais un code plus lisible et surtout beaucoup plus cour.
A+
9 févr. 2011 à 13:28
Voilà tout le code, j'avais mis seulement un extrait.
Lorsque la valeur cherchée est présente le code "Posit = Plage.Find(ProjetRecherché)" fonctionne, Posit prend la valeur de ProjetRecherché qui a été trouvé).
Lorsque la valeur est absente, le code "Posit = Plage.Find(ProjetRecherché)" déclenche l'erreur 91.
Dim ProjetRecherché As Range
Dim Boucle1 As Long
Dim Dernièreligne As Long
Dim Posit As Long
Dim Plage As Range
Sub récupversion()
Version = Workbooks("V1106.xls").Sheets("Paramètre").Cells(2, 2)
Boucle1 = 4
ligne = 2
' recherche de la dernière ligne de la feuille V1103.xls\version
For ligne = 2 To 9999
If Workbooks("V1106.xls").Sheets("Version").Cells(ligne, 1) = "" Then
Dernièreligne = ligne - 1
ligne = 99999
End If
Next
' enrichissement de la liste V1103.xls\version à partir de la liste PSICE-Pilotage version transverse.xls\Donnees version
While Boucle1 < 9999
If Workbooks("PSICE-Pilotage version transverse.xls").Sheets("Donnees version").Cells(Boucle1, 7) = Version And _
Workbooks("PSICE-Pilotage version transverse.xls").Sheets("Donnees version").Cells(Boucle1, 13) <> "UPFC" Then
Set Plage = Workbooks("V1106.xls").Sheets("Version").Range(Cells(3, 2), Cells(Dernièreligne, 2))
Set ProjetRecherché = Workbooks("PSICE-Pilotage version transverse.xls").Sheets("Donnees version").Cells(Boucle1, 9)
Posit = Plage.Find(ProjetRecherché)
If Posit < 0 Then
Dernièreligne = Dernièreligne + 1
Workbooks("V1106.xls").Sheets("Version").Cells(Dernièreligne, 1) = Version
Workbooks("V1106.xls").Sheets("Version").Cells(Dernièreligne, 2) = Workbooks("PSICE-Pilotage version transverse.xls").Sheets("Donnees version").Cells(Boucle1, 9)
Workbooks("V1106.xls").Sheets("Version").Cells(Dernièreligne, 3) = Workbooks("PSICE-Pilotage version transverse.xls").Sheets("Donnees version").Cells(Boucle1, 2)
Workbooks("V1106.xls").Sheets("Version").Cells(Dernièreligne, 4) = Workbooks("PSICE-Pilotage version transverse.xls").Sheets("Donnees version").Cells(Boucle1, 13)
Workbooks("V1106.xls").Sheets("Version").Cells(Dernièreligne, 5) = Workbooks("PSICE-Pilotage version transverse.xls").Sheets("Donnees version").Cells(Boucle1, 61)
Workbooks("V1106.xls").Sheets("Version").Cells(Dernièreligne, 6) = Workbooks("PSICE-Pilotage version transverse.xls").Sheets("Donnees version").Cells(Boucle1, 14)
GoTo fin
End If
End If
If Workbooks("PSICE-Pilotage version transverse.xls").Sheets("Donnees version").Cells(Boucle1, 7) = "" Then
Boucle1 = 9998
End If
fin:
Boucle1 = Boucle1 + 1
Wend
End Sub