Probleme sur une macro écrite

Bonjour a vous,

j'ai une macro qui vise a:

dans la feuil5 colonne B à partir de la ligne 23 trouver la première cellule qui est vide et luis rajouter ce symbole: /

voici la macro:

Sub Donne()

Dim l As Long

For l = Sheets("Feuil5").Cells(23, 2).End(xlUp).Row To 1 Step -1

If Sheets("Feuil5").Cells(l, 2).Text = "" Then Sheets("Feuil5").Cells(l, 2).Text = "/"

End if

End Sub

Mais le problème est qu'elle ne marche pas.

Est se que quelqu'un peut trouver l'erreur?

Merci d'avance.

Bonjour,

Déjà 2 choses :

Tu peux enlever tes.Textqui ne sont pas spécialement utiles, et ensuite entre ton end if et ton end sub, rajoute :

next I

Sinon c'est normal que cela ne marche pas car tu ne faisais jamais varier le numéro de ligne.

Bonjour, salut Zirak,

Sub Donne()
Dim l As Long
    With Sheets("Feuil5")
        For l = .Cells(23, 2).End(xlUp).Row To 1 Step -1
            If .Cells(l, 2) = "" Then .Cells(l, 2) = .Cells(l, 2) & "/"
        Next l
    End With
End Sub

édit: ou plus simplement

If .Cells(l, 2) = "" Then .Cells(l, 2) = "/"

Bonne journée

Claude

Merci a vous deux, sa m'affiche bien le symbole dans la colonne B mais pas sur la première cellule vide après la cellule 23.

Mais tu veux appliquer ton traitement sur quelle plage exactement ?

Car tu parles de "après la ligne 23" et tu fais un code qui va de 23 à 1 avec un pas de -1 par boucle, donc forcement, il n'y aura rien "APRES" la ligne 23.

re,

ajoute Row+1

Sub Donne()
Dim l As Long
    With Sheets("Feuil5")
        For l = .Cells(23, 2).End(xlUp).Row + 1 To 1 Step -1
            If .Cells(l, 2) = "" Then .Cells(l, 2) = "/"
        Next l
    End With
End Sub

Claude

Sa ne marche toujours pas désolé, j'envoie un fichier d’exemple. En fait si la barre peut être sur la colonne A sa serais mieux

14exemple.xlsx (120.94 Ko)

re,

Sub Donne()

Dim l As Long

    l = Worksheets("Feuil5").Range("A65536").End(xlUp).Offset(1, 0).Row
    If l > 23 Then Worksheets("Feuil5").Range("A" & l) = "/"

End Sub

Cordialement,

Je suis vraiment vraiment désolé, je sais pas si c'est moi mais sa marche pas.

re,

d'après ce que j'ai compis

Sub Donne()
Dim Lg&, l As Long
    Application.ScreenUpdating = False
    Lg = Range("b" & Rows.Count).End(xlUp).Row + 1

    With Sheets("Feuil5")
        For l = 23 To Lg
            If .Cells(l, "b") = "" And .Cells(l, "a") <> "/" Then .Cells(l, "a") = "/"
        Next l
    End With
End Sub

Claude

Yes, c'est ça!!!!

Merci merci, je vais regarder et essayer de comprendre les lignes de commandes s'il y a quoi que se soit je viendrais poser mes question si sa dérange pas.

Merci a vous.

Basosa a écrit :

Je suis vraiment vraiment désolé, je sais pas si c'est moi mais sa marche pas.

Fonctionne pourtant sur ton fichier exemple, ou alors je n'ai vraiment pas compris la demande...

re Zirak,

le problème est que sur le fichier d"origine

il y a des apostrophes en colonne A jusqu'à la ligne 7000 environ

Claude

Re Claude

Ah ok, moi je les avais effacées après le 1er test quand j'ai vu que la dernière ligne était la 7309 ou un truc du genre. Je pensais qu'il en avait fait de même sur son fichier

Enfin merci pour la précision.

Excusez moi mais dans le même ordre d'idée j'aurais besoin que :

Dès qu'il y ai une cellule en colonne A contenant: Allo.G ou JOUER ou REPOC ou TRYADE

La cellule de la même ligne se voie rajouté en fin de contenus : " - "

sans enlever le contenus.

Le problème est que les cellules étant du type heure (00:00:00) ce symbole en fin se supprime automatiquement

Je savez pas si je devais ouvrir un nouveau post juste pour ça.

Merci.

re,

à mon avis, c'est un autre sujet,

ouvre un nouveau poste avec fichier exemple

Claude

ok pas de souci merci.

Rechercher des sujets similaires à "probleme macro ecrite"