Aide a la creation d'une macro

petitdudup

XLDnaute Nouveau
Bonjour

J'ai souvent a traiter comme fichier un comme celui en document attaché.

J'aimerais créer une macro stipulant que si il existe dans la colonne D une succession de 20 lignes sans aucune valeur, alors je voudrai que excel mette un 0 dans l'une de ces 20 lignes.
J'aimerai egalement que ceci se fasse dans des rangs de ligne precis, a savoir D1 a D21, D22 à D42,.... ainsi de suite jusqu'a la fin.

Quelqu'un pourrait il m'aider ?

Merci d'avance

Petitdudup
 

MichD

XLDnaute Impliqué
Re : Aide a la creation d'une macro

Bonjour,

Je n'ai pas tout compris de ta demande!
Tu veux inscrire 0 dans quelle ligne de la plage de cellules?

| J'aimerai egalement que ceci se fasse dans des rangs de ligne precis, a savoir D1 a D21, D22 à D42,....

Ta question ne mentionne pas si on doit tenir compte des bornes 1 et 21 dans
la détermination du nombre de cellules consécutives vides dans la plage. Si un
et 21 sont vides, tu auras 21 cellules consécutives vides et non 20.

Il faudra probablement que tu adaptes le code légèrement pour répondre aux
exigences de ton application...

'------------------------------------------
Sub test()
Dim Rg As Range, Are As Range, R As Range, A As Long
With Feuil1
Set Rg = .Range("D1:D" & .Range("D65536"). _
End(xlUp).Row).SpecialCells(xlCellTypeBlanks)
End With

For A = 1 To Rg.Cells.Count Step 21
Set R = Range("D" & A).Resize(21)
For Each Are In Rg.Areas
If Are.Cells.Count >= 20 Then
If Union(Are, R).Address = R.Address Then
R(1, 1) = 0
End If
End If
Next
Next
End Sub
'------------------------------------------
 

petitdudup

XLDnaute Nouveau
Re : Aide a la creation d'une macro

Désolé j'ai oublie de mettre le gichier exemple en piece jointe... ca peut aider !

Bonjour,

Je n'ai pas tout compris de ta demande!
Tu veux inscrire 0 dans quelle ligne de la plage de cellules?

| J'aimerai egalement que ceci se fasse dans des rangs de ligne precis, a savoir D1 a D21, D22 à D42,....

Ta question ne mentionne pas si on doit tenir compte des bornes 1 et 21 dans
la détermination du nombre de cellules consécutives vides dans la plage. Si un
et 21 sont vides, tu auras 21 cellules consécutives vides et non 20.

Il faudra probablement que tu adaptes le code légèrement pour répondre aux
exigences de ton application...

'------------------------------------------
Sub test()
Dim Rg As Range, Are As Range, R As Range, A As Long
With Feuil1
Set Rg = .Range("D1:D" & .Range("D65536"). _
End(xlUp).Row).SpecialCells(xlCellTypeBlanks)
End With

For A = 1 To Rg.Cells.Count Step 21
Set R = Range("D" & A).Resize(21)
For Each Are In Rg.Areas
If Are.Cells.Count >= 20 Then
If Union(Are, R).Address = R.Address Then
R(1, 1) = 0
End If
End If
Next
Next
End Sub
'------------------------------------------
 

Pièces jointes

  • exemple.xlsx
    75.2 KB · Affichages: 45
  • exemple.xlsx
    75.2 KB · Affichages: 46
  • exemple.xlsx
    75.2 KB · Affichages: 46

petitdudup

XLDnaute Nouveau
Re : Aide a la creation d'une macro

En fait dans la colonne A est inscrit le temps. Je voudrai que si, sur un intervalle de 10 secondes piles, aucune valeur n'est referencée dans la colonne D, alors excel place un 0.. Il peut le placer dans la cellule qu'il veut du moment que c'est en D, sur cette plage de 10 secondes et que c'est un seul 0 !
 

MichD

XLDnaute Impliqué
Re : Aide a la creation d'une macro

Lis ta première question, relis cette dernière question. Tu trouves que cela se ressemble?

En colonne A, tu as des données comme : 61,434 qu'est-ce que cela représente ? Des heures,
des minutes, des secondes ?

Avant de poser ta question, tu devrais penser très fort à ce que tu désires...
Personnellement, je passe la main à quelqu'un d'autre!
 

petitdudup

XLDnaute Nouveau
Re : Aide a la creation d'une macro

Ok a la relecture j'avoue que je n'ai pas ete tres clair, et je m'en excuse, mais tu es un peu agressif sur ce cou la quand meme !

Ce sont des secondes dans la colonne A, chaque ligne a 5 centiemes de secondes de plus ce qui explique donc mes 20 lignes car je veux mesurer sur plages de 10 secondes

Voila

Merci a toi si tu essaye encore de m'aider
Sinon merci aux autres
 

Statistiques des forums

Discussions
312 453
Messages
2 088 553
Membres
103 881
dernier inscrit
malbousquet