Sélectionnez la première case vide dans la colonne F à partir de la ligne 1. (sans l'aide d'offset)
C'est une requête que je suis vraiment confus. Parce que j'ai cherché cela tellement de fois mais je trouve toujours les codes liés à trouver la dernière cellule utilisée ou la première cellule non vide. Essayé au-dessous de codes. les codes diff ont été séparés par le mot "Pair"
iRow = Worksheets("Sheet1").Cells(Rows.Count,1).End(XlUp).Row
même
Sub LastCellBeforeBlankInColumn()
Range("A1").End(xldown).Select
End Sub
même
trouver la dernière cellule utilisée dans une colonne:
Sub LastCellInColumn()
Range("A65536").End(xlup).Select
End Sub
même
trouver la dernière cellule, avant un blanc dans un Rang:
Sub LastCellBeforeBlankInRow()
Range("A1").End(xlToRight).Select
End Sub
même
trouvez la dernière cellule utilisée D'affilée:
Sub LastCellInRow()
Range("IV1").End(xlToLeft).Select
End Sub
même
Worksheets("Sheet1").Range("A1").End(xlDown).Row + 1
même
LastRow = Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("SheetName").Range("A" & LastRow).Paste
même
Dim FirstBlankCell as Range
Set FirstBlankCell=Range("A" & rows.Count).end(xlup).offset(1,0)
FirstBlankCell.Activate
'Find the last used row in a Column: column A in this example
Dim LastRow As Long
Dim NextRow As Long
With ActiveSheet
LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row
End With
NextRow = LastRow + 1
9 réponses
Si tout ce que vous essayez de faire est de sélectionner la première cellule vide dans une colonne donnée, vous pouvez donner à ceci un essai:
Code:
Public Sub SelectFirstBlankCell()
Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer
Dim currentRowValue As String
sourceCol = 6 'column F has a value of 6
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).Select
End If
Next
End Sub
avant la sélection-première cellule Vierge à sélectionner:
Après La Sélection:
au cas où quelqu'un trébucherait là-dessus comme je viens de le faire...
trouver la première case vide dans une colonne (j'utilise la colonne D mais je ne voulais pas inclure D1)
NextFree = Range("D2:D" & Rows.Count).Cells.SpecialCells(xlCellTypeBlanks).Row
Range("D" & NextFree).Select
NextFree est juste un nom, vous pouvez utiliser des saucisses si vous voulez.
Code de Sam est bonne, mais je pense qu'il faut un peu de correction,
Public Sub SelectFirstBlankCell()
Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer
Dim currentRowValue As String
sourceCol = 6 'column F has a value of 6
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).Select
Exit For 'This is missing...
End If
Next
End Sub
Merci
si tout ce que vous essayez de faire est de sélectionner la première cellule vierge dans une colonne donnée, vous pouvez essayer:
Range("A1").End(xlDown).Offset(1, 0).Select
si vous l'utilisez par rapport à une colonne, vous avez sélectionné ceci fonctionne:
Selection.End(xlDown).Offset(1, 0).Select
si vous recherchez un liner unique (non inclus les désignations et les commentaires) essayez ceci
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Name")
'find first empty cell in column F (coming up from the bottom) and return row number
iRow = ws.Range("F:F").Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
j'ai adapté un peu le code de tout le monde, je l'ai fait dans une fonction, je l'ai rendu plus rapide (array), et j'ai ajouté des paramètres :
Public Function FirstBlankCell(Optional Sh As Worksheet, Optional SourceCol As Long = 1, Optional ByVal StartRow& = 1, Optional ByVal SelectCell As Boolean = False) As Long
Dim RowCount As Long, CurrentRow As Long
Dim CurrentRowValue As String
Dim Data()
If Sh Is Nothing Then Set Sh = ActiveSheet
With Sh
rowCount = .Cells(.Rows.Count, SourceCol).End(xlUp).Row
Data = .Range(.Cells(1, SourceCol), .Cells(rowCount, SourceCol)).Value2
For currentRow = StartRow To RowCount
If Data(currentRow, SourceCol) = vbNullString Then
If SelectCell Then .Cells(currentRow, SourceCol).Select
'if selection is out of screen, intead of .select , use : application.goto reference:=.cells(...), scroll:= true
FirstBlankCell = currentRow
Exit For
End If
Next
End With ' Sh
Erase Data
Set Sh = Nothing
End Function
Utilisation: SelectFirstBlankCell("F")
Public Sub SelectFirstBlankCell(col As String)
Dim i As Integer
Dim NextCell As Integer
For i = 1 To 10000
If Range(col & CStr(i)).Value = "" Then
NextCell = i
Exit For
End If
Next i
Range(col & CStr(i)).Select
End Sub
Public Sub SelectFirstBlankCell()
Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer
Dim currentRowValue As String
sourceCol = 6 'column F has a value of 6
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).Select
End If
Next
End Sub
Si une colonne contient plus d'une cellule vide en permanence ensuite, ce code ne fonctionnera pas correctement
je pense que Do Until
boucle est plus propre, plus court et plus approprié ici:
Public Sub SelectFirstBlankCell(col As String)
Dim Column_Index as Integer
Dim Row_Counter as
Column_Index = Range(col & 1).Column
Row_Counter = 1
Do Until IsEmpty(Cells(Row_Counter, 1))
Row_Counter = Row_Counter + 1
Loop
Cells(Row_Counter, Column_Index).Select