Signaler

Problème de code - remplir une colonne 3 conditions [Résolu]

Posez votre question saxo91 12Messages postés lundi 19 octobre 2015Date d'inscription 11 octobre 2016 Dernière intervention - Dernière réponse le 11 oct. 2016 à 05:09
Bonjour à tous,

Petit problème mais j'aimerais comprendre une fois pour toute ... car j'arrive pas à comprendre.

Ce code que j'ai pécher fonctionne très bien et je le comprends :
Sub entete()

For i = 1 To 100
If Cells(i, 9).Value = "" Then Cells(i, 1).Value = "E"
Next i
For i = 1 To 100
If Cells(i, 9).Value > 0 Then Cells(i, 1).Value = "D"
Next i

End Sub

Il me positionne bien les E et des D là ou il faut ... jusqu'à la 100ème ligne.
C'est ce que je lui dis de faire.

Mais ce que je voudrais lui demander c'est de le faire tant qu'il y a des lignes ...

Quelqu'un peut m'aider et m'expliquer ?

Merci d'avance;
Louisa
Afficher la suite 
Utile
+0
moins plus
Bonjour,

Remplacer 100 par dernière ligne :

http://www.commentcamarche.net/faq/32220-vba-toutes-versions-detection-de-cellule-vide-ligne-colonne
Ajouter un commentaire
Utile
+0
moins plus
Bonjour cs_Le pivert

Merci de ta réponse, je suis allé lire et j'y arrive presque mais je ne comprend pas pourquoi il s'arrête avant la fin.

Mon code :
Sub entete()

Dim DernCol As Integer
DernCol = Cells(4, Cells.Columns.Count).End(xlToLeft).Column

For i = 1 To DernCol
If Cells(i, 4).Value = "" Then Cells(i, 1).Value = "E"
Next i
For i = 1 To DernCol
If Cells(i, 4).Value > 0 Then Cells(i, 1).Value = "D"
Next i

End Sub

Il s’arrête à la 17ème ligne ...
Alors que la dernière est la 22ème ligne

Si tu as un truc pour m'orienter ...

Merci
albkan 1780Messages postés samedi 26 mars 2016Date d'inscription 3 décembre 2016 Dernière intervention - 10 oct. 2016 à 17:14
 
Bonjour Louisa,

Tu utilises DernCol pour Dernière Colonne ! et .Column pour Colonne !
Alors qu'il te faut la dernière ligne ! Regardes plutôt mon message #3
ci-dessous. Cordialement.  😊

PS : Bonjour à cs_Le Pivert en passant. Cordialement.  😊
 
Répondre
Ajouter un commentaire
Utile
+0
moins plus
Bonjour Louisa,

Je te propose ce code VBA :


Option Explicit

Sub entete()

  Dim dlig As Long, lig As Long

  ' calcul de la dernière ligne, selon la colonne I
  dlig = Range("I" & Rows.Count).End(xlUp).Row

  For lig = 1 To dlig
    Cells(lig, 1) = Chr$(69 + (Cells(lig, 9) > 0))
  Next lig

End Sub


Cas 1 : si Cells(lig, 9) > 0 est vrai, valeur retournée : -1 ;
donc 69 + (-1) = 69 - 1 = 68 et Chr$(68) retourne "D".

Cas 2 : si Cells(lig, 9) > 0 est faux, valeur retournée : 0 ;
donc 69 + 0 = 69 et Chr$(69) retourne "E".

Tu auras noté, bien sûr, que :

a) Une seule boucle For .. Next est nécessaire.
b) Un seul test "> 0" est nécessaire.

Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».

Cordialement.  😊
 
Ajouter un commentaire
Utile
+0
moins plus
Bonjour Alban,

Parfait, ça fonctionne parfaitement ! je te remercie, car j'a compris !!

Et plus encore pour les explications.
Cela ma forcé a retourner voir la table de caractère code ...

Je te remercie encore !

Bonne journée.
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !