XL 2010 reperage d'une cellule

philmaure

XLDnaute Impliqué
bonjour,

comment repérer une cellule particulière (explication dans mon fichier joint)

Repérage de la 1ere colonne vide puis repérage d'une journée particulière

Merci pour aide

Cdlt
Philmaure
 

Pièces jointes

  • test.xlsx
    22.4 KB · Affichages: 38

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Philmaure, bonjour le forum,

Première question:

VB:
Sub Macro1()
Dim COL As Integer
COL = Cells(1, Application.Columns.Count).End(xlToLeft).Column + 1
MsgBox COL 'en chiffre
MsgBox Split(Columns(COL).Address(0, 0), ":")(1) 'en lettre
End Sub

Deuxième question :
VB:
Sub Macro2()
Dim R As Range
Set R = Rows(1).Find("30/07/2016", , xlValues, xlWhole)
If Not R Is Nothing Then R.Select
End Sub
 

Yurperqod

XLDnaute Occasionnel
Bonjour le forum

Essaies ainsi
VB:
Sub test()
MsgBox Cells(1, Columns.Count).End(xlToLeft).Offset(, 1).Address
Rows(1).Find( _
    What:="30/07/2016", _
    After:=Range("HI1"), _
    LookIn:=xlValues, _
    LookAt:=xlPart, _
    SearchOrder:=xlByColumns, _
    SearchDirection:=xlNext).Activate
MsgBox ActiveCell.Address
MsgBox ActiveCell.Text
End Sub

Post-scriptum: je n'avais pas vu l'intervention de Robert avant de publier.
Désolé.
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Oui tu t'es mal exprimé ! La preuve, aucune réponse n'a ciblé juste...
Essaie comme ça :

VB:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim COL As Integer 'déclare la variable COL (COLonne)

Set O = Worksheets("Tous") 'définit l'onglet O
'définit la dernière colonne éditée COL de la ligne 1 de l'onglet O
COL = O.Cells(1, Application.Columns.Count).End(xlToLeft).Column 'définit la dernière colonne éditée COL de la ligne 1
For I = COL To 1 Step -1 'boucle inversée sur les colonnes I de la dernière colonne COL à la colonne 1
    On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
    'condition 1 : si le jour de la semaine la cellule ligne 1 colonne COL est un samedi
    'génère une erreur si la cellule ne contient pas une date
    If Weekday(CDate(O.Cells(1, I))) = 7 Then
        If Err <> 0 Then 'condition 2 : si une erreur a été générée
            Err.Clear 'supprime l'erreur
            GoTo suite 'va à l'étiquette "suite"
        End If 'fin de la condition 2
        Cells(1, I).Select 'sélectionne la cellule ligne 1 colonne I
        Exit Sub 'sort de la procédure
    End If 'fin de la condition 2
suite: 'étiquette
On Error GoTo 0 'annule la gestion des erreurs
Next I 'prochaine colonne I de la boucle inversée
End Sub
 

Yurperqod

XLDnaute Occasionnel
Ci-dessous la V3 qui résume mes deux macros
VB:
Sub testv3()
Dim x As Date, y As Date
x = Cells(1, Columns.Count).End(xlToLeft)
y = x - Weekday(x) Mod 7
Rows(1).Find( _
    What:=CStr(y), _
    After:=Range("HI1"), _
    LookIn:=xlValues, _
    LookAt:=xlPart, _
    SearchOrder:=xlByColumns, _
    SearchDirection:=xlNext).Activate
End Sub
 

Discussions similaires

Réponses
20
Affichages
641

Statistiques des forums

Discussions
312 963
Messages
2 093 996
Membres
105 906
dernier inscrit
aifa