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
14
demandé sur Community 2013-02-19 16:52:09

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:

enter image description here

Après La Sélection:

enter image description here

11
répondu Sam 2013-02-19 16:09:49

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.

11
répondu Cameronface 2014-06-25 13:02:19

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

8
répondu RedLeo 2014-04-02 12:52:22

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
7
répondu Chandan B 2018-04-04 14:18:46

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
6
répondu CammoL 2016-08-13 01:14:04

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
2
répondu Patrick Lepelletier 2016-07-05 15:57:23

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
1
répondu user2924019 2018-05-02 14:26:32
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

0
répondu Goka raju 2015-04-27 07:06:29

je pense que Do Untilboucle 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
0
répondu Matthias Baetens 2018-09-29 19:30:41