cherche date sur feuille

laurent999

XLDnaute Occasionnel
bonsoir,

Je vous ai joint un petit classeur, dans ce classeur il y a déjà une macro.
En lisant cette macro, il est facile de comprendre ce que je désire réaliser.
Je pense avoir bien écrit le code et pourtant cela ne fonctionne pas.
Afin de m'améliorer:
Est-ce qu'il y a quelqu'un qui peut y jeté un œil et m'expliquer ou se trouve l'erreur?

Pour ceux qui n'aurais pas envie de télécharger le classeur voici le code:

Sub ma()
Dim feuille As Worksheet
Dim d As Date
Dim e As Range

For Each feuille In ThisWorkbook.Worksheets

d = "01/01/10"
Set e = Range("A1:A10").Find(d)

If Not e Is Nothing Then

With e
.Select

End With
ActiveCell.Offset(0, 1).Activate.Value = 1
End If
Next feuille
End Sub

Merci d'avance,

Laurent.
 

Pièces jointes

  • test.xlsm
    16.1 KB · Affichages: 38
  • test.xlsm
    16.1 KB · Affichages: 40
  • test.xlsm
    16.1 KB · Affichages: 40

Hulk

XLDnaute Barbatruc
Re : cherche date sur feuille

Hello,

Outre le lien de Boisgontier, tu peux modifier ton code comme ceci et ça devrait jouer..
Code:
Private Sub CommandButton1_Click()

Dim feuille As Worksheet
Dim d As Date
Dim e As Range

For Each feuille In ThisWorkbook.Worksheets

d = "01/01/10"
Set e = Range("A1:A10").Find(d)

If Not e Is Nothing Then
    e.Offset(0, 1).Value = 1
End If
Next feuille
End Sub
 

laurent999

XLDnaute Occasionnel
Re : cherche date sur feuille

bonsoir Boisgontier,

Merci pour ton lien, cependant j'ai de la difficulté à comprendre.
Peux tu apporter la correction sur le classeur que j'ai joint?
Avec explications ligne par ligne.
Cela m'aiderai à comprendre plus facilement?
merci d'avance,
Laurent.
 

Hulk

XLDnaute Barbatruc
Re : cherche date sur feuille

Re,

Au fait, j'ai essayé avec ton code et il affiche le 1 qu'à la feuille active.
SI tu veux qu'il affiche 1 sur toutes les feuilles, j'ai trouvé ceci
Code:
    Dim Wb As Workbook
    Dim Ws As Worksheet
    Dim x As Variant
    Dim MaDate As Date

    On Error Resume Next
    
    'MaDate = InputBox("Saisissez une date.", Title:="Recherche d'une Date")
    'If MaDate = 0 Then Exit Sub
    MaDate = "01/01/10"
    For Each Wb In Application.Workbooks
        For Each Ws In Wb.Worksheets
            For Each x In ThisWorkbook
                Set x = Ws.Cells.Find(MaDate)
                    If Not x Is Nothing Then
                        x.Offset(0, 1).Value = 1
                    End If
            Next x
        Next Ws
    Next Wb
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : cherche date sur feuille

Code:
Sub ma()
  For Each f In ActiveWorkbook.Sheets
    d = CDate("01/01/2010")
    Set e = f.Range("A1:A10").Find(d)
    If Not e Is Nothing Then e.Offset(0, 1).Value = 1
  Next f
End Sub

ou

Code:
Sub ma()
  Dim d As Date
  For Each f In ActiveWorkbook.Sheets
    d = #1/21/2010#
    'd = "21/01/2010"
    Set e = f.Range("A1:A10").Find(d)
    If Not e Is Nothing Then e.Offset(0, 1).Value = 1
  Next f
End Sub


http://boisgontierjacques.free.fr/fichiers/FindMultiFeuilles2.xls

JB
 

Pièces jointes

  • test(1).xls
    37.5 KB · Affichages: 30
  • test(1).xls
    37.5 KB · Affichages: 31
  • test(1).xls
    37.5 KB · Affichages: 29
Dernière édition:

laurent999

XLDnaute Occasionnel
Re : cherche date sur feuille

Merci à vous 2,

Ce que je cherché correspond tout à fait à la macro de Boisgontier.
Par contre je ne comprends pas pourquoi la modif de Hulk, ne fonctionnait pas car cela parait être la même chose.

Peux tu m'expliquer Boisgontier?
je n'aurais pas du mettre dim d as date?

merci,

laurent.
 

Bebere

XLDnaute Barbatruc
Re : cherche date sur feuille

bonjour
et si tu as plusieurs fois la même date dans une feuille

Sub ma()
Dim feuille As Worksheet
Dim d As Date
Dim C As Range
d = "01/01/10"

For Each feuille In ThisWorkbook.Worksheets
With feuille
Set C = .Range("A1:A" & .Range("A65536").End(xlUp).Row).Find(d, LookIn:=xlValues)
If Not C Is Nothing Then
firstAddress = C.Address
Do
C.Offset(, 1).Value = 1
Set C = .Range("A1:A" & .Range("A65536").End(xlUp).Row).FindNext(C)
Loop While Not C Is Nothing And C.Address <> firstAddress
End If
End With
Next feuille

End Sub
à bientôt
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia