Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Numéro de ligne en variable

6 réponses
Avatar
none
Bonjour,

Je suis débutant en VBA.
Je cherche à mettre le numéro de ligne selectionnée en variable puis de
créer un do Loop While pour parcourir les lignes d'un tableau (a chaque
boucle, quelques cellules de la ligne sont traitées)

Dim ligne as integer
Sheets("Export").Select
ligne = 3

'Sélection de la première ligne
Range("A:ligne").Select


'Si la cellule est différente de empty, on commence la boucle
If ActiveCell.Value <> Empty Then

Do

'Traitement des cellule de la ligne
If datextrac = Cell("19, ligne").Value Then
MsgBox "Il s'agit d'une entrée"
Else
MsgBox "J'ai pas encore regardé si il s'agit d'une sortie"
End If
'On passe à la ligne suivante et on regarde si la première 'cellule
est différente de Empty
ligne = ligne + 1
ActiveRow.Offset(1, 0).Select
Range("A:ligne).Select
Loop While ActiveCell.Value <> Empty


Y-a-t-il une personne qui puisse m'aider?
D'avance merci.

6 réponses

Avatar
Pierre Fauconnier
Bonjour

range("a" & ligne) ou range("$a:$" & ligne) , ...

cells(ligne,x) avec x représentant le numéro de la colonne

Ok?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"none" <""pat"@(none)"> a écrit dans le message de news:
454dc525$0$14670$
Bonjour,

Je suis débutant en VBA.
Je cherche à mettre le numéro de ligne selectionnée en variable puis de
créer un do Loop While pour parcourir les lignes d'un tableau (a chaque
boucle, quelques cellules de la ligne sont traitées)

Dim ligne as integer
Sheets("Export").Select
ligne = 3

'Sélection de la première ligne
Range("A:ligne").Select


'Si la cellule est différente de empty, on commence la boucle
If ActiveCell.Value <> Empty Then

Do

'Traitement des cellule de la ligne
If datextrac = Cell("19, ligne").Value Then
MsgBox "Il s'agit d'une entrée"
Else
MsgBox "J'ai pas encore regardé si il s'agit d'une sortie"
End If
'On passe à la ligne suivante et on regarde si la première 'cellule est
différente de Empty
ligne = ligne + 1
ActiveRow.Offset(1, 0).Select
Range("A:ligne).Select
Loop While ActiveCell.Value <> Empty


Y-a-t-il une personne qui puisse m'aider?
D'avance merci.


Avatar
lSteph
Bonjour,



Un Do loop donnerait (mais ce n'est pas forcément le plus approprié)

Dim numr as long '(integer ne couvre que la moitié des lignes)
Do
'ton traitement
numr=numr+1
loop while cells(numr,19).value<>""

Il serait possible de faire ainsi:

Dim c as range
For each c in Columns(19).cells
if isempty(c.value) then exit for
'ton traitement
next c

ou même directement trouver la dernière cellule:

For i = 2 to Cells(65536,19).end(xlup).row
'ton traitement sur cells(i,19)
next i


.... nota:
A priori peut -être à rectifier
Cells(ligne, colonne)
et non colonne ligne
datextract n'est pas défini
Range("A:ligne").Select
.select est à éviter (pas la peine de sélectionner pour traiter)

(Dis ce que tu veux faire dans le code, pour plus détaillé)
.....

Cordialement.

lSteph









none a exprimé avec précision :
Bonjour,

Je suis débutant en VBA.
Je cherche à mettre le numéro de ligne selectionnée en variable puis de créer
un do Loop While pour parcourir les lignes d'un tableau (a chaque boucle,
quelques cellules de la ligne sont traitées)

Dim ligne as integer
Sheets("Export").Select
ligne = 3

'Sélection de la première ligne
Range("A:ligne").Select


'Si la cellule est différente de empty, on commence la boucle
If ActiveCell.Value <> Empty Then

Do

'Traitement des cellule de la ligne
If datextrac = Cell("19, ligne").Value Then
MsgBox "Il s'agit d'une entrée"
Else
MsgBox "J'ai pas encore regardé si il s'agit d'une sortie"
End If
'On passe à la ligne suivante et on regarde si la première 'cellule est
différente de Empty
ligne = ligne + 1
ActiveRow.Offset(1, 0).Select
Range("A:ligne).Select
Loop While ActiveCell.Value <> Empty


Y-a-t-il une personne qui puisse m'aider?
D'avance merci.


--
- -

Avatar
lSteph
...

Dim numr as long
numr = 1 'oubli
Do
'...

--
- -
Avatar
MichDenis
Ce que ton code pourrait avoir l'air :

La lette S dans cette expression représente la colonne 19
de la ligne : Cells(Ligne, "S").

Attention, dans la procédure soumise, je n'ai pas vu à quel
moment la variable "datextrac" est renseignée...
Est-ce une variable Public ?

'---------------------------
Sub test()

Dim Ligne As Integer
Ligne = 3
With Sheets("Export")
Do While .Range("A" & Ligne) <> ""
If datextrac = .Cells(Ligne, "S").Value Then
MsgBox "Il s'agit d'une entrée"
Else
MsgBox "J'ai pas encore regardé si il s'agit d'une sortie"
End If
Ligne = Ligne + 1
Loop
End With
End Sub
'---------------------------




"none" <""pat"@(none)"> a écrit dans le message de news: 454dc525$0$14670$
Bonjour,

Je suis débutant en VBA.
Je cherche à mettre le numéro de ligne selectionnée en variable puis de
créer un do Loop While pour parcourir les lignes d'un tableau (a chaque
boucle, quelques cellules de la ligne sont traitées)

Dim ligne as integer
Sheets("Export").Select
ligne = 3

'Sélection de la première ligne
Range("A:ligne").Select


'Si la cellule est différente de empty, on commence la boucle
If ActiveCell.Value <> Empty Then

Do

'Traitement des cellule de la ligne
If datextrac = Cell("19, ligne").Value Then
MsgBox "Il s'agit d'une entrée"
Else
MsgBox "J'ai pas encore regardé si il s'agit d'une sortie"
End If
'On passe à la ligne suivante et on regarde si la première 'cellule
est différente de Empty
ligne = ligne + 1
ActiveRow.Offset(1, 0).Select
Range("A:ligne).Select
Loop While ActiveCell.Value <> Empty


Y-a-t-il une personne qui puisse m'aider?
D'avance merci.
Avatar
Ange Ounis
Dim ligne as integer


Si je puis me permettre, il est préférable de déclarer une variable représentant
une ligne en Long plutôt qu'en Integer (type dont la valeur maximum est
32767...alors qu'Excel propose actuellement 65536 lignes).
Avec ligne en Integer, si tu as besoin d'accéder à la 32768ème ligne d'une
feuille de calcul, tu obtiendras un message d'erreur (erreur 6 : dépassement de
capacité).

----------
Ange Ounis
----------

Bonjour,

Je suis débutant en VBA.
Je cherche à mettre le numéro de ligne selectionnée en variable puis de
créer un do Loop While pour parcourir les lignes d'un tableau (a chaque
boucle, quelques cellules de la ligne sont traitées)

Dim ligne as integer
Sheets("Export").Select
ligne = 3

'Sélection de la première ligne
Range("A:ligne").Select


'Si la cellule est différente de empty, on commence la boucle
If ActiveCell.Value <> Empty Then

Do

'Traitement des cellule de la ligne
If datextrac = Cell("19, ligne").Value Then
MsgBox "Il s'agit d'une entrée"
Else
MsgBox "J'ai pas encore regardé si il s'agit d'une sortie"
End If
'On passe à la ligne suivante et on regarde si la
première 'cellule est différente de Empty
ligne = ligne + 1
ActiveRow.Offset(1, 0).Select
Range("A:ligne).Select
Loop While ActiveCell.Value <> Empty


Y-a-t-il une personne qui puisse m'aider?
D'avance merci.


Avatar
Patrice
Bonjour,
La variable datextrac était déclarée plus haut dans le code qui donne
maintenant ceci grace à votre aide (je n'ai pas encore fini, mais je ne
vais pas lacher prise!)

Sub Indic()

Dim datextrac As Date
Dim ligne As Integer

'Définition de la date d'extraction BO
Msg = "La date d'extration BO est-elle " & Date & " ?"
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbYes Then datextrac = Date
If Ans = vbNo Then
datextrac = InputBox("Saisissez la date d'extraction BO au format
JJ/MM/AAA")
End If

'définition de la ligne de début
ligne = 3

'moulinette
With Sheets("Export")
Do While .Range("A" & ligne) <> ""
'Traitement des données de la ligne
If datextrac = .Cells(ligne, "S").Value Then
MsgBox "Il s'agit d'une entrée"
Else
MsgBox "J'ai pas encore regardé si il s'agit d'une sortie"
End If
'incrémentation
ligne = ligne + 1

Loop
End With


End Sub



Ce que ton code pourrait avoir l'air :

La lette S dans cette expression représente la colonne 19
de la ligne : Cells(Ligne, "S").

Attention, dans la procédure soumise, je n'ai pas vu à quel
moment la variable "datextrac" est renseignée...
Est-ce une variable Public ?

'---------------------------
Sub test()

Dim Ligne As Integer
Ligne = 3
With Sheets("Export")
Do While .Range("A" & Ligne) <> ""
If datextrac = .Cells(Ligne, "S").Value Then
MsgBox "Il s'agit d'une entrée"
Else
MsgBox "J'ai pas encore regardé si il s'agit d'une sortie"
End If
Ligne = Ligne + 1
Loop
End With
End Sub
'---------------------------




"none" <""pat"@(none)"> a écrit dans le message de news: 454dc525$0$14670$
Bonjour,

Je suis débutant en VBA.
Je cherche à mettre le numéro de ligne selectionnée en variable puis de
créer un do Loop While pour parcourir les lignes d'un tableau (a chaque
boucle, quelques cellules de la ligne sont traitées)

Dim ligne as integer
Sheets("Export").Select
ligne = 3

'Sélection de la première ligne
Range("A:ligne").Select


'Si la cellule est différente de empty, on commence la boucle
If ActiveCell.Value <> Empty Then

Do

'Traitement des cellule de la ligne
If datextrac = Cell("19, ligne").Value Then
MsgBox "Il s'agit d'une entrée"
Else
MsgBox "J'ai pas encore regardé si il s'agit d'une sortie"
End If
'On passe à la ligne suivante et on regarde si la première 'cellule
est différente de Empty
ligne = ligne + 1
ActiveRow.Offset(1, 0).Select
Range("A:ligne).Select
Loop While ActiveCell.Value <> Empty


Y-a-t-il une personne qui puisse m'aider?
D'avance merci.