Probleme variable temps

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

evzone

XLDnaute Nouveau
Bonjour,

Je travaille sur un gros fichier excel que je ne peux corriger manuellement en raison de sa taille... Les valeurs de mon tableur doivent être toutes les deux minutes. Malheureusement il y a plusieurs cellules successives qui ont le même nombre de minutes ou où il manque une valeurs. Ainsi j ai cree une macro du type:

Sub corr_err()


For i = 30 To 45
If (Minute(Cells(i, 2)) <> (Minute(Cells(i + 1, 2)) - 2)) Then
If (Minute(Cells(i, 2)) = Minute(Cells(i + 1, 2))) Then
MsgBox (i)
Rows(i).Delete
Else
MsgBox (i)
Rows(i + 1).Insert
MsgBox (Minute(Cells(i, 2)))
Cells(i + 1, 2) = Time(Cells(i, 2))
End If
End If
Next i
End Sub

Elle marche bien pour la suppression des lignes lorsque deux cellules consecutives sont les memes. toutefois lorsqu il me manque une valeur, je rajoute une ligne mais je n arrive pas a faire a donner une valeur en temps a la cellule de ma nouvelle ligne...
 
Re : Probleme variable temps

Re,

pas sur d'avoir bien compris, regarde le code ci-dessous si il peut t'aider, renvoie la valeur de la cellule du de-dessus dans la cellule active - 2 minutes...
Code:
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value - (1 / 1440) * 2
 
Re : Probleme variable temps

Re,

pas sur d'avoir bien compris, regarde le code ci-dessous si il peut t'aider, renvoie la valeur de la cellule du de-dessus dans la cellule active - 2 minutes...
Code:
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value - (1 / 1440) * 2

C'était quasiment ca. Merci beaucoup, peux tu m expliquer cette ligne?

Pour ceux que ca interesse, voici mon code :

Code:
Sub corr_err()


For i = 45 To 30 Step -1
        If (Minute(Cells(i, 2)) <> (Minute(Cells(i - 1, 2)) + 2)) Then
            If (Minute(Cells(i, 2)) = Minute(Cells(i - 1, 2))) Then
                MsgBox (i)
                Rows(i).Delete
            Else
                MsgBox (i)
                Rows(i).Insert
                MsgBox (i + 1)
                Range("B" & i).Select
                ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + (1 / 1440) * 2
            End If
        End If
Next i
End Sub
 
Re : Probleme variable temps

Re,

la valeur de la cellule active prend celle du dessus - 2minutes, sachant que pour Excel une journée est égal à 1, pour obtenir 1 minute, on divise 1 par 1440, soit 24h * 60 minutes, et multiplier par 2 puisque tu veux enlever 2 minutes... En espérant avoir été clair... pas sûr....
 
Re : Probleme variable temps

Re,

la valeur de la cellule active prend celle du dessus - 2minutes, sachant que pour Excel une journée est égal à 1, pour obtenir 1 minute, on divise 1 par 1440, soit 24h * 60 minutes, et multiplier par 2 puisque tu veux enlever 2 minutes... En espérant avoir été clair... pas sûr....

Ok j'ai tout compris. Plutot astucieux comme méthode. Merci. Bye
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
707
Réponses
2
Affichages
186
Réponses
8
Affichages
649
Réponses
5
Affichages
478
Réponses
4
Affichages
581
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour