garder en mémoire la position

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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:
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

à+
 
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

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+
 
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
 
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:
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+
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
235
Réponses
8
Affichages
466
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
177
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Retour