Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Modifier un code

  • Initiateur de la discussion Initiateur de la discussion maval
  • Date de début Date de début

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,


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
 

laetitia90

XLDnaute Barbatruc
Re : Modifier un code

bonjour maval ,pierrot
peut etre avec un user dans un label jamais le meme nb.. caracteres donc impossible!! pour moi
arrete de muliplier les posts pour le meme sujet
 

Pièces jointes

  • Survol2.xlsm
    44.6 KB · Affichages: 50

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

  • Question Question
Microsoft 365 Probléme VBA
Réponses
5
Affichages
167
  • Question Question
Microsoft 365 créer un macro vba
Réponses
0
Affichages
359
  • Question Question
Microsoft 365 Incompatibilité de type
Réponses
1
Affichages
294
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…