2016-07-21 4 views
0

Mon code place un texte dans une cellule vide mais ne le remplit pas jusqu'à la ligne de pension.Placer un texte "général" dans les cellules vides

Je souhaite placer le texte "general" dans les cellules vides de la colonne E mais ne le remplit pas jusqu'à la fin bcoz du rowcount.

voici mon code:

Sub FindandReplace() 
Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer 
Dim currentRowValue As String 

sourceCol = 5 'column E has a value of 5 
rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row 

'for every row, find the first blank cell and select it 
For currentRow = 1 To rowCount 
    currentRowValue = Cells(currentRow, sourceCol).Value 
    If IsEmpty(currentRowValue) Or currentRowValue = "" Then 
     Cells(currentRow, sourceCol) = "general" 
    End If 
Next 
End Sub 

Le résultat est cette :(encore colonne vide E)

Column E        Column F 

general       Use-Limit 
general       Use-Limit 
XL354L,XL354H,XL356L,XL356H   Use-Limit 
XL353,XL355,XL357     Use-Limit 
           Use-Limit 
           Use-Limit 
           Use-Limit 
           Use-Limit 
+0

vous avez colonne 'sourceCol = 5'' F a une valeur de 5, actuellement la colonne F a une valeur de 6, donc si vous voulez utiliser la colonne F, modifiez à 'sourceCol = 6' –

+0

SOrry qui est supposément colonne E –

+0

regardez mon Réponse ci-dessous. –

Répondre

0

Explication de votre erreur: vous êtes à la recherche de la dernière ligne dans la colonne E, que vous avez 4 lignes de données (en regardant votre exemple). Cependant, La colonne F comporte 8 lignes de données. Par conséquent, si vous voulez faire une boucle par la ligne 8, vous devez rechercher la dernière ligne dans la colonne F , et non la colonne E.

Essayez le code modifié ci-dessous:

Sub FindandReplace() 

Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer 
Dim currentRowValue As String 

sourceCol = 6 ' find last row in column F 
rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row 

'for every row, find the first blank cell and select it 
For currentRow = 1 To rowCount 
    currentRowValue = Cells(currentRow, sourceCol-1).Value 
    If IsEmpty(currentRowValue) Or currentRowValue = "" Then 
     Cells(currentRow, sourceCol-1) = "general" 
    End If 
Next 

End Sub 
+0

Bonjour @shai Rado Comme la sourceCol est 6, elle remplacera la cellule vide de la colonne F et non la colonne E. Je dois remplacer les cellules vides de la colonne E par "général" et non par la colonne F. –

+0

@J_Gonzales voir le code édité en réponse –

+0

merci @shai Rado –

0
Sub FindandReplace() 

Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer 
Dim currentRowValue As String 

sourceCol = 5 ' find last row in column F 
rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row 
rowCount2 = Cells(Rows.Count, sourceCol + 2).End(xlUp).Row ' add this to loop 8 times 

'for every row, find the first blank cell and select it 
For currentRow = 1 To rowCount2 
    currentRowValue = Cells(currentRow, sourceCol).Value 
    If IsEmpty(currentRowValue) Or currentRowValue = "" Then 
     Cells(currentRow, sourceCol) = "general" 
    End If 
Next 

End Sub