Effacer des lignes avec du VBA

Résolu/Fermé
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 - 17 janv. 2011 à 13:35
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 - 17 janv. 2011 à 16:51
Bonjour à tous,

Je voudrais pouvoir supprimer toutes les lignes depuis la première ligne ou la cellule A est vide jusqu'à la dernière. Pour cela je calcule le Nb de lignes utilisées que je stock dans la variable "Derlig". Mais je bloque sur la façon d'utiliser cette variable.

Si je teste :
    Rows("10:30").Select
    Selection.Delete Shift:=xlUp

Je supprime bien les lignes de 10 à 30

Par contre je me plante dans la manière d'utiliser la variable
Ci-dessous ce que j'ai codé :

    Derlig = Nb_LigneBdx	` Appel fonction
    Rows("Derlig:65536").Select
    Selection.Delete Shift:=xlUp
________________________________________________
Function Nb_LigneBdx() As Integer
    Dim I As Integer
    For I = 1 To 250
        If Sheets("Feuil1").Range("A" & I).Value = "" Then Exit For      ' Test la première cellule vide de la colonne A.
    Next I
    Nb_LigneBdx = I ' - 1
End Function 

J'ai une erreur d'exécution 13. Incompatibilité de type sur la ligne :
Rows("Derlig:65536").Select
Y a-t-il une âme charitable pour venir à mon secours.
D'avance merci
Mistral

PS: Tout mon code est là je fais un test
avant de modifier un classeur.



3 réponses

Bonjour,
Pas d'explication mais :

au lieu de :
Rows("Derlig:65536").Select

ça marche avec:
plage = Derlig & ":65536"
Rows(plage).Select


Bonne journée
0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
17 janv. 2011 à 14:19
Bonjour Paf,

Encore un mystère de l'informatique...

Je viens de faire un test et effectivement ça marche!
Un grand merci à toi.

Par contre j'ai un autre souci pour lequel je ne comprends pas non plus. Dans ma procédure je sauvegarde mon classeur en CSV (séparateur ; point virgule) avec l'instruction suivante :

ActiveWorkbook.SaveAs (Nom_Chemin & "\" & Nom_Fichier & " " & Format(Date, "yyyy") & ".csv"), FileFormat:=xlCSV, CreateBackup:=False


Je fais bien ma sauvegarde mais quand j'essaye d'ouvrir mon classeur je me retrouve avec des " , " (virgule) comme séparateur au lieu de " ; " (point virgule) et ça que je l'ouvre avec Excel ou Note Pade.
Je comprends pas...
Aurais-tu une explication?
Mistral
0
Re ,
ton code me donne bien un fichier csv avec ; comme séparateur.

Consulter l'aide de SaveAs, méthode ? qui précise que les paramêtres du panneau de configuration et la langue de Excel influent.

Bonne journée
0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
17 janv. 2011 à 16:51
UN GRAND MERCI pour ton aide!

Effectivement en ajoutant l'augument :

Local:=True


ça marche impécable et j'ai exactement ce dont j'avais besoin.
Mille mercis à toi.
Cordialement
Mistral
0