garder en mémoire la position

maxime69

XLDnaute Nouveau
bonjour, je cherche a connaitre la première cellule vide de ma colonne (sa c'est ok) mais j'aimerais la garder la ligne en mémoire afin d’écrire automatiquement dans cette ligne.

Voici la macro que j’utilise actuellement :
Sub severity_index()
Dim i As Integer
With ThisWorkbook.Worksheets("severity_index")
.Cells(1, 5) = "x"
.Cells(2, 2) = "cL"
.Cells(2, 3) = "r"
.Cells(2, 4) = "t"
.Cells(2, 5) = "y"
.Cells(2, 6) = "y"
.Cells(2, 7) = "t"
.Cells(2, 8) = "p"
.Cells(2, 9) = "m"
.Cells(2, 10) = "p"
.Cells(2, 11) = "u"
.Cells(2, 12) = "c
End With
DerLigne
.Cells(i, 1) = "toto"
End Sub

Sub DerLigne()
Sheets("severity_index").Select
i = Range("A65536").End(xlUp).Offset(1, 0).Select
End Sub



Merci par avance de votre aide
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : garder en mémoire la position

Bonjour Maxime

pourquoi ne pas fusionner tes 2 procédures en une seule ???


Sub severity_index()
Dim i As Integer
With ThisWorkbook.Worksheets("severity_index")
.Cells(1, 5) = "x"
.Cells(2, 2) = "cL"
.Cells(2, 3) = "r"
.Cells(2, 4) = "t"
.Cells(2, 5) = "y"
.Cells(2, 6) = "y"
.Cells(2, 7) = "t"
.Cells(2, 8) = "p"
.Cells(2, 9) = "m"
.Cells(2, 10) = "p"
.Cells(2, 11) = "u"
.Cells(2, 12) = "c
i =. Range("A65536").End(xlUp).Row + 1
.Cells(i, 1) = "toto"
End With
End Sub


à+
Philippe
 
Dernière édition:

francedemo

XLDnaute Occasionnel
Re : garder en mémoire la position

bonjour,
à tester si j'ai compris:

Sub severity_index()
Dim i As Integer
With ThisWorkbook.Worksheets("severity_index")
i = Range("B65536").End(xlUp).rows + 1
.Cells(2, i) = "cL"
.Cells(2, i) = "r"
.Cells(2, i) = "t"
.Cells(2, i) = "y"
.Cells(2, i) = "y"
.Cells(2, i) = "t"
.Cells(2, i) = "p"
.Cells(2, i) = "m"
.Cells(2, i) = "p"
.Cells(2, i) = "u"
.Cells(2, i) = "c
.Cells(i, 1) = "toto"
End With
End Sub

à+
 

ROGER2327

XLDnaute Barbatruc
Re : garder en mémoire la position

Bonjour à tous


Il faudrait savoir ce que signifie "la première cellule vide de ma colonne". Personnellement, je doute que End(xlUp) permette de trouver cela...
Voir les deux feuilles du classeur joint​


Bonne soirée.


ROGER2327
#6102


Hunyadi 29 Gidouille 139 (hunyadi gras - Nom d’Ubu - fête Suprême Seconde)
25 Messidor An CCXX, 7,3972h - pintade
2012-W28-5T17:45:12Z
 

Pièces jointes

  • XLD_188600.xlsm
    19.5 KB · Affichages: 71

david84

XLDnaute Barbatruc
Re : garder en mémoire la position

Bonsoir à tous,
Code à placer dans le module de la feuille :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Cible As Range, Cancel As Boolean)
Dim Pl As Range, i&
Set Pl = Range(Cells(1, ActiveCell.Column), Cells(Cells.Rows.Count, ActiveCell.Column))
For i = 1 To Pl.Rows.Count
    If IsEmpty(Pl(i)) Then Pl(i).Select: Cancel = True: Exit Sub
Next i
End Sub
A+
 

maxime69

XLDnaute Nouveau
Re : garder en mémoire la position

Bonjour,cette macro me permet de trouver la première ligne vide de ma colonne.

Sub DerLigne()
Sheets("severity_index").Select
Range("A65536").End(xlUp).Offset(1, 0).Select
End Sub

J'aimerais mettre cette ligne en variable afin de pouvour faire un .cells (n° de la ligne, 2) = "toto"

Merci de votre aide
 

david84

XLDnaute Barbatruc
Re : garder en mémoire la position

Re
Bonjour,
je ne comprend pas exactement ce que fait ton code.
Désolé . c'était simplement une proposition suite à celle de Roger2327 pour trouver la 1ère cellule vide de la colonne mais je m'aperçois qu'elle est hors de propos et de plus mal rédigée :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
Dim Pl As Range, i&
Set Pl = Range(Cells(1, target.Column), Cells(Cells.Rows.Count, target.Column))
For i = 1 To Pl.Rows.Count
    If IsEmpty(Pl(i)) Then Pl(i).Select: Cancel = True: Exit Sub
Next i
End Sub

Teste le classeur de Roger2327 et tu comprendras ce sur quoi il veut attirer ton attention : il n'est pas sûr que l'utilisation de .End(xlup) te ramène à coup sûr la 1ère ligne vide de la colonne de la cellule sélectionnée.
A+

Edit : pour exposer ta demande clairement, rien ne vaut un petit fichier exemple...
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : garder en mémoire la position

Re
Bonjour, voir post 8
Le post 8 ne comporte rien d'autre que le code avec lequel tu ne sembles pas t'en sortir.
Par contre, je ne vois pas de fichier exemple...
A tester (sait-on jamais...) :
Code:
Sub test()
Dim Pl As Range, i&
Set Pl = Range(Cells(1, ActiveCell.Column), Cells(Cells.Rows.Count, ActiveCell.Column))
For i = 1 To Pl.Rows.Count
    If IsEmpty(Pl(i)) Then Pl(i).Value = "toto": Exit Sub
Next i
End Sub
A+
 

maxime69

XLDnaute Nouveau
Re : garder en mémoire la position

Bonjour, Voici la macro qui me pause problème.

Sub severity_index()
Dim i As Integer
With ThisWorkbook.Worksheets("severity_index")
.Cells(1, 5) = "o"
.Cells(2, 2) = "i"
.Cells(2, 3) = "o"
.Cells(2, 4) = "o"
.Cells(2, 5) = "p"
.Cells(2, 6) = "b"
.Cells(2, 7) = "n"
.Cells(2, 8) = "n"
.Cells(2, 9) = "n"
.Cells(2, 10) = "b"
.Cells(2, 11) = "d"
.Cells(2, 12) = "e"
End With
Dim fin As Integer
Sheets("severity_index").Select
fin = Range("A65536").End(xlUp).Offset(1, 0).Select
With ThisWorkbook.Worksheets("severity_index")
.Cells(A, 1) = "toto" 'j'aimerais que "A" soit= fin la variable de la ligne trouve mais je n'y arrive pas. Si je met fin dans ma cells sa ne compile pas).

End With

End Sub


Merci de m'aider
 

ROGER2327

XLDnaute Barbatruc
Re : garder en mémoire la position

Re...


(...)
Merci de m'aider
Volontiers. Mais j'ai du mal à comprendre des phrases de ce genre :
'j'aimerais que "A" soit= fin la variable de la ligne trouve mais je n'y arrive pas. Si je met fin dans ma cells sa ne compile pas).
S'il s'agit de sélectionner la première cellule vide de la colonne A dans l'onglet severity_index et d'y inscrire le texte toto, essayer ceci :
VB:
Sub severity_index()

'Dim i As Integer 'Instruction inutile : la variable i n'est jamais utilisée dans la procédure.

    With ThisWorkbook.Worksheets("severity_index")

'        .Cells(1, 5) = "o" 'Instruction inutile : Worksheets("severity_index").Cells(1, 5) est une cellule faisant partie d'un groupe de cellules fusionnées.

        .Cells(2, 2) = "i"
        .Cells(2, 3) = "o"
        .Cells(2, 4) = "o"
        .Cells(2, 5) = "p"
        .Cells(2, 6) = "b"
        .Cells(2, 7) = "n"
        .Cells(2, 8) = "n"
        .Cells(2, 9) = "n"
        .Cells(2, 10) = "b"
        .Cells(2, 11) = "d"
        .Cells(2, 12) = "e"
        .Activate
        With .[A1]
            If IsEmpty(.Cells) Then
                .Select
            ElseIf IsEmpty(.Cells.Offset(1)) Then
                .Offset(1).Select
            Else
                .End(xlDown).Offset(1).Select
            End If
        End With
        Selection.Value = "toto"
    End With
End Sub


Bon courage.


ROGER2327
#6104


Hunyadi 29 Gidouille 139 (hunyadi gras - Nom d’Ubu - fête Suprême Seconde)
25 Messidor An CCXX, 9,2905h - pintade
2012-W28-5T22:17:50Z
 

Discussions similaires

Réponses
0
Affichages
155

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia