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 !

E

evzone

Guest
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

Ok merci du conseil... Pourrais-tu m'expliquer pourquoi?
Sinon cela ne regle pas mon probleme d inserer dans la case la date avec 2 minutes de moins que la date de la precedente cellule...
 
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
770
Réponses
5
Affichages
903
Réponses
4
Affichages
278
Réponses
2
Affichages
255
Réponses
8
Affichages
774
Retour