XL 2010 Address

rom3478

XLDnaute Nouveau
Bonjour,

J'ai un petit problème de syntaxe et je ne trouve pas la réponse.

J'ai rédigé un code, je recherche une semaine via Find et je trouve ensuite son addrees(0,0) que je place dans un Range (h=repfind.address). Mon MsgBox m'indique bien un retour du type "A4".

Je souhaite ensuite réutiliser ce range mais je ne sais pas comment.

Nouv = range(h) mais ce ne marche pas. Pouvez vous m'indiquer l'écriture à adopter svp.
 

eriiic

XLDnaute Barbatruc
Bonjour à tous,

lorsque tu fais Set repfind=range.find(...) tu obtiens un Range. Ex :
VB:
    Dim repfind As Range
    Set repfind = Columns(1).Find("toto", , xlValues, xlWhole)
    If Not repfind Is Nothing Then repfind.Offset(, 1) = "<= c'est là"
eric
 

rom3478

XLDnaute Nouveau
Bonjour,

J'ai testé vos éléments de réponse mais je rencontre toujours un refus. Je vous joins mon code et vous explique plus concrètement mon problème:

VB:
'prise en compte de l'onglet "linéaire" d’un fichier 1
With Sheets("Linéaire")

    'recherche de la semaine "rep" dans le fichier 1 suite à une fenêtre interface demandée plus tôt dans mon code
    Dim Sem As Range, Semnext As Range
    Set Sem = .Rows(3).Find(Rep, Lookat:=xlWhole)
    Set Semnext = .Rows(3).Find(Rep + 1, Lookat:=xlWhole)
    If Sem Is Nothing Then
       MsgBox "aucune correspondance trouvée"
       Exit Sub
    Else
        'identification des cellules pour la semaine "rep" (car cellule fusionnée)
        firstsemAddress = Sem.Address(0, 0)
        MsgBox firstsemaddress 'ex: PT3
        secondsemAddress = Semnext.Offset(0, -1).Address(0, 0)
        MsgBox secondsemAddress 'ex: PW3
    End If

End With

[…] de la je ferme mon fichier 1 puis je crée un nouveau fichier 2.

Dans ce fichier 2, je crée un tableau dans lequel je souhaite y copier mes dates associées à la semaine "rep", c'est pour de la remise en forme.

Code:
'définition des dates de la semaine Rep
Dim c As Range, i0 As Integer
Dim datedeb As Range
'"A3" correspond à ma première cellule du fichier 2 ou je veux inscrire ma date de mon fichier 1
Set c = Range("A3")
'datedeb est définie comme la première cellule sous mon premier identifiant firstsemAddress (dans l'exemple: PT3 donne PT4)
'=> ca bug ici
Set datedeb=firstsemAddress.Offset(1,0)
'Je crée une boucle pour que mes cellules A3, B3, etc... prenne les valeurs des cellules datedeb (PT4, PU4, etc...)
For i0 = 1 To 7
   c = datedeb.offset(0, i0-1).value
   Set c = c.Offset(0, 1)
Next i0

Merci pour votre aide.
 

Valtrase

XLDnaute Occasionnel
Salut Rom3478 le fil...
Si je ne me trompe pas dans FirstsemAddress tu as une adresse donc tu ne peux pas l'affecter a un object Range comme tu fais ici
VB:
'datedeb est définie comme la première cellule sous mon premier identifiant firstsemAddress (dans l'exemple: PT3 donne PT4)
'=> ca bug ici
Set datedeb=firstsemAddress.Offset(1,0)
'Je crée une boucle pour que mes cellules A3, B3, etc... prenne les valeurs des cellules datedeb (PT4, PU4, etc...)
For i0 = 1 To 7
Testes plutôt avec un Range
Code:
'datedeb est définie comme la première cellule sous mon premier identifiant firstsemAddress (dans l'exemple: PT3 donne PT4)
'=> ca bug ici
Set datedeb = Range(firstsemAddress).Offset(1,0)
'Je crée une boucle pour que mes cellules A3, B3, etc... prenne les valeurs des cellules datedeb (PT4, PU4, etc...)
For i0 = 1 To 7
 

laurent950

XLDnaute Accro
Bonsoir,

VB:
Sub test()
With Worksheets(1).Range("a1:a500")
' Ecrire 2 dans l'une cellule de la colonne a1:a500
Dim Sem As Range
Dim firstsemAddress As String
Dim datedeb As Range
Dim c As Range
Dim i0 As Integer
    
    Set Sem = .Find(2, LookIn:=xlValues)
        Sem.Select
        MsgBox Sem.Value
    If Not Sem Is Nothing Then
        firstsemAddress = Sem.Address(0, 0)
            Set datedeb = Range(firstsemAddress).Offset(1, 0)
                MsgBox datedeb.Address
                MsgBox datedeb.Select
                
        'Boucle
        For i0 = 1 To 7
           Set c = datedeb.Offset(0, i0 - 1)
                Set c = c.Offset(0, 1)
                c.Select
                MsgBox c.Value
        Next i0
    End If
End With
End Sub

C'est un exemple sans connaitre votre code.

Laurent
 

Discussions similaires

  • Résolu(e)
Microsoft 365 planning
Réponses
17
Affichages
670
Réponses
16
Affichages
472
Réponses
7
Affichages
321

Statistiques des forums

Discussions
312 195
Messages
2 086 076
Membres
103 111
dernier inscrit
Eric68350