XL 2019 Horloge mondiale a VBA

frederio

XLDnaute Impliqué
Bonjour à tous
Tu vous connais comment faire ?
Si tu veux être d’accord avec moi ??? vous m’aidez a expliqué comme Excel Merci


Comment faire à VBA

+1
 

Pièces jointes

  • Horloge mondiale.xlsm
    64.6 KB · Affichages: 9
  • 2000.jpg
    2000.jpg
    85.7 KB · Affichages: 7

vgendron

XLDnaute Barbatruc
Bonjour

Toujours aussi peu clair...

1) vérifie le fichier que tu as posté:
==>sur l'image que tu a mise, il y un textbox, mais pas dans le fichier...

2) quand tu sélectionnes un pays dans le combo, tu arrives à trouver l'heure, tu devrais aussi pouvoir trouver le +1
 

vgendron

XLDnaute Barbatruc
tu n'as pas compris..

sur ton image, il y a le label pour mettre le +1 (ou +2 +3....)
DONC ca veut dire que, pour prendre une photo, tu as fait un fichier AVEC le label
DONC il faut mettre LE fichier qui a servi pour faire la photo !

Ensuite
dans ton fichier, tu as un premier label pour mettre l'heure en fonction du pays sélectioné dans le combobox

SI tu as réussi à mettre l'heure, tu dois être capable de mettre aussi le +1 +2 +3....
un indice
col+1 ==> col+2
 

laurent950

XLDnaute Barbatruc
Bonsoir @vgendron

il lui suffit de traduire la formule excel
Code:
=SI(C7=$Q$2;"";SI(C7>$Q$2;"+" & TEXTE(C7-$Q$2;"h");"-" & TEXTE($Q$2-C7;"h")))
que je lui est créer en code VBA

VB:
Private Sub ComboBox1_Change()
    Me.Label3.Caption = Cells(Application.Match(Me.ComboBox1.Value, [plage], 0) + [plage].Row - 1, [plage].Column + 1).Text
    Dim CalculDiffTemps As String
    Dim valeur1, reference As Range
        Set valeur1 = Cells(Application.Match(Me.ComboBox1.Value, [plage], 0) + [plage].Row - 1, [plage].Column + 1)
        Set reference = Range("Q2")
            If valeur1.Value = reference.Value Then
                CalculDiffTemps = ""
            ElseIf valeur1.Value > reference.Value Then
                CalculDiffTemps = "+" & Format(valeur1.Value - reference.Value, "h")
            Else
                CalculDiffTemps = "-" & Format(reference.Value - valeur1.Value, "h")
            End If
    MsgBox CalculDiffTemps
End Sub

ensuite ajouter un label est lui envoyer le résultat
 

vgendron

XLDnaute Barbatruc
bonsoir @laurent950
Je crois que tu confonds les deux posts
ICI, il est juste question d'ajouter un label (ce qu'il a déjà fait puisque sa photo le montre !)
et j'ajouter UNE ligne de code en se basant sur celle qu'il a déja puisqu'il a l'info de l'heure dans le premier label en modifiant JUSTE un +1 en +2
 

job75

XLDnaute Barbatruc
Bonsoir,

@vgendron pourquoi faire attendre frederio ??? Le code dans l'Userform :
VB:
Private Sub ComboBox1_Change()
    Label3 = Cells(Application.Match(ComboBox1, [plage], 0) + [plage].Row - 1, [plage].Column + 1).Text
    Label4 = Cells(Application.Match(ComboBox1, [plage], 0) + [plage].Row - 1, [plage].Column + 2).Text
End Sub
A+
 

Pièces jointes

  • Horloge mondiale.xlsm
    66.4 KB · Affichages: 6

vgendron

XLDnaute Barbatruc
Bonsoir,

@vgendron pourquoi faire attendre frederio ??? Le code dans l'Userform :
VB:
Private Sub ComboBox1_Change()
    Label3 = Cells(Application.Match(ComboBox1, [plage], 0) + [plage].Row - 1, [plage].Column + 1).Text
    Label4 = Cells(Application.Match(ComboBox1, [plage], 0) + [plage].Row - 1, [plage].Column + 2).Text
End Sub
A+
Hello job75
parce que je trouve pénible les gens qui ne prennent pas la peine de poster LE fichier qui correspond à l'image et qui du coup, clairement, n'essaient pas de comprendre
et parce que je ne suis pas de bonne humeur! voila.. ca va passer :-D
je vais peut être écouter "Imagine" de John Lennon :-D
 

job75

XLDnaute Barbatruc
Bonjour frederio, le forum,
Bonjour @job75
Est si la formule n existe pas dans la feuille excel (celle que je lui est créé par formule) comment faire ?
Perso j'utiliserai une formule renvoyant un nombre.

Cette macro dans ThisWorkbook crée la plage "Pays" et y entre la formule :
VB:
Private Sub Workbook_Open()
With Sheets("MONDES")
    Intersect(.[7:100], .Cells.SpecialCells(xlCellTypeConstants, 2)).Name = "Pays"
    [Pays].Offset(, 2) = "=HOUR(RC[-1])-HOUR(R2C17)"
    [Pays].Offset(, 2).NumberFormat = """+""0;-0;" 'format personnalisé
End With
End Sub
A+
 

Pièces jointes

  • Horloge mondiale.xlsm
    67 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour frederio, le forum,

On peut supprimer les formules qu'on vient de créer :
VB:
Private Sub Workbook_Open()
Dim a As Range
With Sheets("MONDES")
    Intersect(.[7:100], .Cells.SpecialCells(xlCellTypeConstants, 2)).Name = "Pays"
End With
With [Pays].Offset(, 2)
    .NumberFormat = """+""0;-0;" 'format personnalisé
    .FormulaR1C1 = "=HOUR(RC[-1])-HOUR(R2C17)"
    For Each a In .Areas
        a = a.Value 'supprime les formules
    Next
End With
End Sub
Bien voir que le nom "Pays" est utilisé ensuite dans la macro Worksheet_BeforeDoubleClick.

A+
 

Pièces jointes

  • Horloge mondiale.xlsm
    67.6 KB · Affichages: 7

Statistiques des forums

Discussions
315 098
Messages
2 116 190
Membres
112 679
dernier inscrit
Yupanki