Modifier un code

maval

XLDnaute Barbatruc
Bonjour

J'ai un petit souci avec mon code ci-dessous

Code:
 Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 
With ActiveSheet
    If X < 10 Or X > Image2.Width - 10 Or Y < 10 Or Y > Image2.Height - 10 Then
         ActiveSheet.Shapes("Basse-Normandie").Fill.ForeColor.RGB = RGB(255, 255, 255)    'Couleur de fond blanc
         
         ActiveSheet.Shapes("Label5").Fill.ForeColor.RGB = RGB(255, 255, 0)    'Couleur de fond jaune
         ActiveSheet.Shapes("Label5").Visible = False
        
                    ActiveSheet.Shapes("Label2").Fill.ForeColor.RGB = RGB(255, 255, 0)    'Couleur de fond jaune
                    ActiveSheet.Shapes("Label2").Visible = False
        
    Else
    
                    ActiveSheet.Shapes("Label2").Visible = True
    
        With ActiveSheet.Shapes("Label5")
            .Visible = True
            .TextFrame2.TextRange.Characters.Text = f("Basse-Normandie")
        End With
        ActiveSheet.Shapes("Basse-Normandie").Fill.ForeColor.RGB = RGB(0, 255, 0)    'Couleur de fond vert
        

    End If
End With
End Sub
 

 
Private Function f(ByVal Str As String) As String
Dim c As Range
 
If Str <> "" Then
    Set c = Worksheets("Donnée").Range("C:C").Find(Str, LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
        f = c.Offset(1, 0).Value                       
        f = c.Offset(1, 1).Value
        f = c.Offset(1, 2).Value
        Set c = Nothing
    End If
End If
End Function

Au niveau
Code:
  f = c.Offset(1, 0).Value                     
            f = c.Offset(1, 1).Value
            f = c.Offset(1, 2).Value

Je n'arrive pas a rechercher les données dans les colonnes a droite de la colonne "C"

Je vous remercie d'avance

Maval
 

vviinncce

XLDnaute Nouveau
Re : Modifier un code

Bonjour,

Je ne comprends pas ien pourquoi tu as trois lignes :
f = c.Offset(1, 0).Value
f = c.Offset(1, 1).Value
f = c.Offset(1, 2).Value
Ta fonction va juste te retourner c.offset(1,2).value a priori, soit deux colonnes à droite de la colonne C et une ligne en dessous...
 

Pierrot93

XLDnaute Barbatruc
Re : Modifier un code

Re,

Bonjour,

Je ne comprends pas ien pourquoi tu as trois lignes :
f = c.Offset(1, 0).Value
f = c.Offset(1, 1).Value
f = c.Offset(1, 2).Value
Ta fonction va juste te retourner c.offset(1,2).value a priori, soit deux colonnes à droite de la colonne C et une ligne en dessous...

oui, c'est pas faux....

vérifie peut être que la valeur cherchée a bien été trouvée....
 

maval

XLDnaute Barbatruc
Re : Modifier un code

Re,

En faisant comme ceci

Code:
If Str <> "" Then
    Set c = Worksheets("Donnée").Range("C:C").Find(Str, LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
  
        f = c.Offset(1, 0).Value
        f = c.Offset(1, 1).Value
        f = c.Offset(1, 2).Value
        
        
        
        Set c = Nothing
    End If

Je n'est que la troisième colonne
@+
 

vviinncce

XLDnaute Nouveau
Re : Modifier un code

Pour répondre au problème que tu as:
ta fonction f(Str) te renvoie uniquement Caen, or si j'ai bien compris, tu souhaiterais voir Calvados, 14 et Caen ? (et j'imagine pareil pour Manche et Orne dans un second temps...)

C'est lié au fait que ta fonction f te retourne uniquement son dernier résultat, et non les trois valeurs.
change ta fonction f par ceci :
Code:
Private Function f(ByVal Str As String) As String
Dim c As Range
 
If Str <> "" Then
    Set c = Worksheets("Donnée").Range("C:C").Find(Str, LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
    
        f = c.Offset(1, 0).Value & ", " &  c.Offset(1, 1).Value & ", " & c.Offset(1, 2).Value
        
        Set c = Nothing
    End If
End If
End Function

Bon courage pour la suite, tu dois maintenant faire une boucle pour balayer l'intérieur de tes régions... :)

A+,

Vincent
 
Dernière édition:

maval

XLDnaute Barbatruc
Re : Modifier un code

Re

Voila je suis débrouiller comme j'ai peut et j'ai fait ceci.

Code:
Private Function f(ByVal Str As String) As String
Dim c As Range
 
If Str <> "" Then
    Set c = Worksheets("Donnée").Range("C:C").Find(Str, LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
        f = c.Offset(1, 0).Value                   'ici pour l'exemple on prend l'information juste au dessous à adapter
        f = f & "          " & "        " & c.Offset(1, 1).Value
        f = f & "          " & "        " & c.Offset(1, 2).Value
        f = f & "          " & "                  " & c.Offset(1, 3).Value
        f = f & vbCrLf & c.Offset(2, 0).Value
        f = f & "           " & "        " & c.Offset(2, 1).Value
        f = f & "            " & "      " & c.Offset(2, 2).Value
        f = f & "          " & "             " & c.Offset(2, 3).Value
        f = f & vbCrLf & c.Offset(3, 0).Value
        f = f & "             " & "           " & c.Offset(3, 1).Value
        f = f & "            " & "      " & c.Offset(3, 2).Value
        f = f & "          " & "             " & c.Offset(3, 3).Value
        Set c = Nothing
    End If
End If
End Function

Si quelqu'un a une solution pour centrer les colonnes je suis preneur

Bonne soirée

Max
 

maval

XLDnaute Barbatruc
Re : Modifier un code

Bonjour,

Suite au modification que Lætitia a fait et que je salut et remercie au passage de son talent Je ne comprend pas pourquoi que je n'arrive pas a supprimer le label5 qui me serre a rien?
Ni physiquement ni dans le code

Bonne journée

Cordialement

Maval
 

Discussions similaires

Réponses
5
Affichages
166
Réponses
0
Affichages
359
Réponses
1
Affichages
294

Membres actuellement en ligne

Statistiques des forums

Discussions
315 261
Messages
2 117 863
Membres
113 357
dernier inscrit
clem1536