Boucle plus simple

Temjeh

XLDnaute Accro
Supporter XLD
Bonjour à tous

Suite à un poste d'Hier trop flou j'ai changer ma demande pour plus simple:

J'aimarais savoir comment faire une boucle avec ceci:

If Range('D21').Value = Range('D41').Value Then
Range('D21:D40').Select
Selection.Insert Shift:=xlDown
Else

If Range('D61').Value = Range('D81').Value Then
Range('D61:D80').Select
Selection.Insert Shift:=xlDown
Else

If Range('D81').Value = Range('D101').Value Then
Range('D81:D100').Select
Selection.Insert Shift:=xlDown

End If
End If
End If

...Jusqu'a range('D1000')

Merci infiniement

Aussi sans abuser

Comment dire à ceci de considérer une formule dont le résultat est zéro comme vide. Je veut ex activecell en A1 sélect la dernière de la plage mais il inclu une cell ou il y a une formule qui se réfère a autre cell mais vide pour l'instant ...merci beaucoup

Range(ActiveCell, ActiveCell.SpecialCells(xlCellTypeLastCell).Address).Select

Temjeh

Message édité par: Temjeh, à: 24/04/2006 13:35
 

Gibson94

Nous a quitté
Repose en paix
Bonjour Temjeh, le forum,

Pour répondre à ta 1ère question, je te propose ce code

Code:
Sub test()
Dim var As Long
var = 21
Do Until var > 1000
If Range('D' & var).Value = Range('D' & var + 20).Value Then
Range('D' & var & ':D' & var + 19).Select
Selection.Insert Shift:=xlDown
End If
var = var + 20
Loop
End Sub

Bonne journée...
 

salim

XLDnaute Occasionnel
Bonjour

En plus de la solution de Gibson94 je te propose cette procedure:

Code:
Option Explicit

Sub test()
Dim Bcle%
    For Bcle = 21 To 1000 Step 20
        If Cells(Bcle, 4) = Cells(Bcle + 20, 4) Then
            Range(Cells(Bcle, 4), Cells(Bcle + 19, 4)).Insert Shift:=xlDown
        End If
    Next Bcle
End Sub

salim.
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Temjeh, Guy et Salim, bonsoir à toutes et à tous :)

Pour la première demande, je te propose ce bout de code :

Option Explicit

Sub Boucle()
'
Dim Ligne As Long
'
  Ligne = 1
  Do
    Ligne = Ligne + 20
  Loop Until (Cells(Ligne, 4) = Cells(Ligne + 20, 4)) Or (Ligne > 1000)

  If Ligne < 1000 Then
    Range(Cells(Ligne, 4), Cells(Ligne + 19, 4)).Insert shift:=xlShiftDown
  End If

End Sub

Quant à ta seconde demande, je n'ai pas trop compris :unsure: . Mais s'il s'agit de trouver la dernière cellule sans 'résultat', il va falloir t'y prendre autrement (je suppose que ta formule donne un résultat, même si c'est un chaîne vide).

A+ ;)
 

Temjeh

XLDnaute Accro
Supporter XLD
Bonsoir à tous

Merci Charly2 c'est juste....la perfection!!!

Désolé pour les autres et pour mon manque de clarté.
Merci quand-même et bonne nuit.

Temjeh


Voici le zip pour la 2ème question [file name=Trie_col_J.zip size=19462]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Trie_col_J.zip[/file]

Merci je l'ai

Range('B65536').End(xlUp).Offset(0, 8).Select
Range('A1:' & ActiveCell.Address).Select

Temjeh

Message édité par: Temjeh, à: 25/04/2006 03:14
 

Pièces jointes

  • Trie_col_J.zip
    19 KB · Affichages: 19
M

Mytå

Guest
Salut Temjeh et le Forum

Remplace ta formule en J1 par =SI(NB.SI(Plage;D1)=0;'';NB.SI(Plage;D1))

Double click coin inférieur droit pour la copier

Ta macro va alors devenir

Sub Macro1()
Range(Range('A1'), Range('A1').SpecialCells(xlCellTypeFormulas, xlNumbers).Address).Select
End Sub

Mytå
 

Statistiques des forums

Discussions
312 493
Messages
2 088 959
Membres
103 990
dernier inscrit
lamiadebz