Effacement ligne automatique en VBA

baptbapt

XLDnaute Occasionnel
Bonjour tous le monde

J'ai un petit problème avec mon code d'effacement, j'ai du me planter dessus.

Son but supprimer les lignes ou n_obs a pour valeur "" rien, on peut pas faire plus simple quoi, et dès que valeur différente de "", on arrete la boucle.

Code:
'Effacement des lignes vides
'For z = 2 To Range("I65536").End(xlUp).Row
For Each z In Range("I2:I65536")
    If Cells(z, 9).Value = "" Then
    Rows(z).Delete shift:=xlUp
 End If
Next z

Je comprend plus, pourquoi sa arrive a moi!!!!, j'ai rien fait pourtant, je suis gentil.

n_obs et en colonne 9, et mes valeurs commence el ligne 2

Merci
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Effacement ligne automatique en VBA

Bonjour Baptbapt, bonjour le forum,

essaie comme ça :

Code:
Dim li As Long
Dim x As Long
 
li = Range("I65536").End(xlUp).Row
 
For x = li To 2 Step -1
    If Cells(li, 9).Value = "" Then Rows(li).Delete shift:=xlUp
Next x
 

baptbapt

XLDnaute Occasionnel
Re : Effacement ligne automatique en VBA

Code:
Dim li As Long
Dim x As Long
 
li = Range("I65536").End(xlUp).Row
 
For x = li To 2 Step -1
    If Cells(li, 9).Value = "" Then
    Rows(li).Delete shift:=xlUp
    End If
Next x

veu rien savoir, ne supprime pas mes lignes

en plus je peut meme pas mettre mon fichier en pièce joint 4Mo, trop gros meme en le compressant
 

baptbapt

XLDnaute Occasionnel
Re : Effacement ligne automatique en VBA

Les éléments a supprimer sont sur la feuille2

Je ne l'ai pas mis dans mon code, car c'est la page actice au moment ou je réalise cette modification.

J'ai essayer en mettant la macro d'effacement sur un autre module, mais toujours pas.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Effacement ligne automatique en VBA

Bonjour Baptbapt, bonjour le forum,

Désolé en principe je teste toujours avant d'envoyer et là je ne l'ai pas fait et mal m'en a pris... Mauvaise variable utilisée li au lieu de x.

Code:
Sub Macro1()
Dim li As Long
Dim x As Long
 
li = Range("I65536").End(xlUp).Row
 
For x = li To 2 Step -1
    If Cells(x, 9).Value = "" Then
    Rows(x).Delete shift:=xlUp
    End If
Next x
End Sub

Édition

Hé m.... ! Je me suis fait encore gauler par José...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Effacement ligne automatique en VBA

Bonjour le fil, bonjour le forum,

Je n'ai fais qu'un copier/coller des codes de Bapt au carré... J'ai ta tête dans le c... c'est vrai. Shift=xlUp ! j'avais même pas vu. Arrête de me casse les coudes et laisse-moi cuver en paix...
 

baptbapt

XLDnaute Occasionnel
Re : Effacement ligne automatique en VBA

Autre petit plus

J'ai le nom de ma feuille de base qui s'apelle "......"
le nom change pour chaque simulation

Y as t'il un moyen de changer se nom en feuil1, pluis simple pour après lors du lancement du autre macro

Cela afin d'éviter de devoir changer le nom partout

Y a t'il une macro qui fasse, prenne page active, et change nom en "feuil1"

merci
 

baptbapt

XLDnaute Occasionnel
Re : Effacement ligne automatique en VBA

C'est bon, j'ai rajouter
Code:
ActiveSheet.Name = "Feuil1"

pour changer le nom de ma feuille de départ
Truc tout bete

Mes pages de donées de départ sont des reconvertion en excel de page XML, elle conserve donce le nom de la sauvegarde, c'est pour cela que je voulais changer le nom.

Mais j'ai trouvé
 

baptbapt

XLDnaute Occasionnel
Re : Effacement ligne automatique en VBA

autre chose encore

Code:
Dim e As Long
Dim z As Long
 
e = Range("D65536").End(xlUp).Row
For z = e To 2 Step -1 
    ActiveCell.FormulaR1C1 = "=RC[-5]/(24*3600)"
    Selection.NumberFormat = "h:mm:ss;@"
    ActiveCell.FormulaR1C1 = "=RC[-3]*100"
Next z

j'essaye de faire une boucle avec ces éléments, mais sa ne fonctionne pas
il me donne uniquement les données pour ma première cellule

calculer les heures en Colonne I
et le flight level en J

ceci sur toute les cases ou j'ai des valeurs A

Meme moi ji perd mon latin
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Effacement ligne automatique en VBA

Bonjour le fil, bonjour le forum,

Ben oui Baptbapt, ActiveCell c'est Activecell...

Code:
[LEFT]Dim e As Long
Dim z As Long[/LEFT]
 
[LEFT]e = Range("D65536").End(xlUp).Row
For z = e To 2 Step -1 
   Cells(z, 4).FormulaR1C1 = "=RC[-5]/(24*3600)"
   Cells(z, 4).NumberFormat = "h:mm:ss;@"
   Cells(z, 4).FormulaR1C1 = "=RC[-3]*100"
Next z[/LEFT]
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 581
Messages
2 089 916
Membres
104 306
dernier inscrit
Bouhlal