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

tester le contenu d'une variable

8 réponses
Avatar
gvivet
Bonjour,

Gr=E2ce =E0 un inpubox, je saisie la cellule (ex : A5) sur laquelle va
porter l'ex=E9cution d'une macro.
Toutefois j'aimerai savoir comment contr=F4ler et tester la validit=E9 de
ce qui est saisie dans l'inputbox. En l'occurence, v=E9rifier qu'il
s'agit bien d'une adresse de cellule valide. Comme faire ?

8 réponses

Avatar
Elliac
Bonjour,

a = Application.InputBox("Cellule à atteindre", , , , , , , 8).Address
Renvoie l'adresse de la cellule, sinon message d'erreur.

Camille



Bonjour,

Grâce à un inpubox, je saisie la cellule (ex : A5) sur laquelle va
porter l'exécution d'une macro.
Toutefois j'aimerai savoir comment contrôler et tester la validité de
ce qui est saisie dans l'inputbox. En l'occurence, vérifier qu'il
s'agit bien d'une adresse de cellule valide. Comme faire ?




Avatar
Jacky
Bonsoir,

Ceci permet , soit par clique de souris soit par une entrée valide, le
positionnement sur une cellule.
'---------
Sub jj()
On Error Resume Next
Set macellule = Application.InputBox("Selectionnez une cellule valide",
"Sélection", Type:=8)
macellule.Select
End Sub
'----------
Salutations
JJ

a écrit dans le message de
news:
Bonjour,

Grâce à un inpubox, je saisie la cellule (ex : A5) sur laquelle va
porter l'exécution d'une macro.
Toutefois j'aimerai savoir comment contrôler et tester la validité de
ce qui est saisie dans l'inputbox. En l'occurence, vérifier qu'il
s'agit bien d'une adresse de cellule valide. Comme faire ?
Avatar
Hugh
Merci beaucoup... J'étais passé à côté vu que j'avais mis un "on
error resume next". Du coup, ça continuait l'exécution de la macro
(bien sûr, sans faire ce qu'il fallait :-) )
J'avais fini par me dire qu'il fallait récupérer l'erreur d'une
façon particulière que je ne connaissais pas :-)

Bonne fin de journée ^^


Bonjour,

a = Application.InputBox("Cellule à atteindre", , , , , , , 8).Ad dress
Renvoie l'adresse de la cellule, sinon message d'erreur.

Camille



Bonjour,

Grâce à un inpubox, je saisie la cellule (ex : A5) sur laquelle va
porter l'exécution d'une macro.
Toutefois j'aimerai savoir comment contrôler et tester la validité de
ce qui est saisie dans l'inputbox. En l'occurence, vérifier qu'il
s'agit bien d'une adresse de cellule valide. Comme faire ?






Avatar
Hugh
Bon, j'ai terminé ma macro dont le but est de supprimer les lignes
vides d'un tableau.
Avec ce script ça pourra montrer un exemple de solution pour des
personnes qui auraient des difficultées pour la gestion d'erreurs
(comme c'était mon cas)
Et encore merci aux personnes du groupes ;-)


Sub SupprimerLignesVides()
'Définition des variables
Dim LigneDebut
Dim LigneFin As Range
Dim NumLigneFin As Integer
Dim Ligne As Integer
'En cas d'erreur se rendre à la balise fin:
On Error GoTo fin
'Saisir de la cellule d'origine du tableau où doivent être
supprimées les lignes vides
LigneDebut = InputBox("Saisir la première cellule du tableau à
explorer", "Supprimer les lignes vides")
'Sortir de la macro si on valide et input vide ou alors quand on clique
sur annuler
If LigneDebut = "" Then Exit Sub

LigneDebut = Range(LigneDebut).Address
'Recherche la dernière ligne du tableau (peut sans doute être
amélioré)
Application.ScreenUpdating = False
Range("A65536").Select

While ActiveCell = ""
ActiveCell.Offset(rowOffset:=-1, columnOffset:=0).Activate
Wend

NumLigneFin = ActiveCell.Row
'boule pour supprimer les lignes vides dans le tableau
For Ligne = NumLigneFin To Range(LigneDebut).Row Step -1
If Application.CountA(Rows(Ligne)) = 0 Then
Rows(Ligne).Delete
Next Ligne

Application.ScreenUpdating = True
MsgBox ("Suppressions terminées")
Range("A1").Select

'Gestion des erreurs
fin:
If Err.Number <> 0 Then
Select Case Err.Number
Case 1004
MsgBox "La macro a été interrompue parce que la
référence de la cellule est incorrecte" & Chr(13) & "Exemple de
saisie : a5 ou bien A5" & Chr(13) & Chr(13) & "Vous aviez saisi : " &
LigneDebut, , "Erreur dans l'exécution de la macro"
Case Else
MsgBox "La macro a été interrompue suite à une erreur #
" & Str(Err.Number) & " générée par " & Err.Source & Chr(13) &
Err.Description, , "Erreur d'ans l'exécution de la macro"
End Select
End If

End Sub



Merci beaucoup... J'étais passé à côté vu que j'avais mis un "on
error resume next". Du coup, ça continuait l'exécution de la macro
(bien sûr, sans faire ce qu'il fallait :-) )
J'avais fini par me dire qu'il fallait récupérer l'erreur d'une
façon particulière que je ne connaissais pas :-)

Bonne fin de journée ^^


Bonjour,

a = Application.InputBox("Cellule à atteindre", , , , , , , 8). Address
Renvoie l'adresse de la cellule, sinon message d'erreur.

Camille



Bonjour,

Grâce à un inpubox, je saisie la cellule (ex : A5) sur laquelle va
porter l'exécution d'une macro.
Toutefois j'aimerai savoir comment contrôler et tester la validit é de
ce qui est saisie dans l'inputbox. En l'occurence, vérifier qu'il
s'agit bien d'une adresse de cellule valide. Comme faire ?








Avatar
J
Bonjour Hugh
j'ai problème avec les msgbox : "les lignes passent en rouge"
un tuyau?
merci
J@@
'Gestion des erreurs
fin:
If Err.Number <> 0 Then
Select Case Err.Number
Case 1004
MsgBox "La macro a été interrompue parce que la
référence de la cellule est incorrecte" & Chr(13) & "Exemple de
saisie : a5 ou bien A5" & Chr(13) & Chr(13) & "Vous aviez saisi : " &
LigneDebut, , "Erreur dans l'exécution de la macro"
Case Else
MsgBox "La macro a été interrompue suite à une erreur #
" & Str(Err.Number) & " générée par " & Err.Source & Chr(13) &
Err.Description, , "Erreur d'ans l'exécution de la macro"
End Select
End If


Avatar
Hugh
Celà est peut-être dû à un renvoi à la ligne incorrecte lorsque tu
as procédé au copier-coller. Chez moi, je ne procède pas au renvoi
à la ligne. Si tu veux en avoir pour rendre le script plus lisible
(sans avoir à naviguer via l'ascenseur horizontal) tu peux ajouter un
"_" en fin de ligne qui permet le renvoi.
Mis à part ça, il s'agit peut-être une erreur dans ma syntaxe mais
vu que le script fonctionne sur mon poste (avec excel 2003) ...


J@@ wrote:
Bonjour Hugh
j'ai problème avec les msgbox : "les lignes passent en rouge"
un tuyau?
merci
J@@
'Gestion des erreurs
fin:
If Err.Number <> 0 Then
Select Case Err.Number
Case 1004
MsgBox "La macro a été interrompue parce que la
référence de la cellule est incorrecte" & Chr(13) & "Exemple de
saisie : a5 ou bien A5" & Chr(13) & Chr(13) & "Vous aviez saisi : " &
LigneDebut, , "Erreur dans l'exécution de la macro"
Case Else
MsgBox "La macro a été interrompue suite à une erreur #
" & Str(Err.Number) & " générée par " & Err.Source & Chr(13) &
Err.Description, , "Erreur d'ans l'exécution de la macro"
End Select
End If




Avatar
J
Bonjour et merci pour le retour Hugh
je revois cela, mais je suis enXL2000
@+
J@@

Celà est peut-être dû à un renvoi à la ligne incorrecte lorsque tu
as procédé au copier-coller. Chez moi, je ne procède pas au renvoi
à la ligne. Si tu veux en avoir pour rendre le script plus lisible
(sans avoir à naviguer via l'ascenseur horizontal) tu peux ajouter un
"_" en fin de ligne qui permet le renvoi.
Mis à part ça, il s'agit peut-être une erreur dans ma syntaxe mais
vu que le script fonctionne sur mon poste (avec excel 2003) ...


J@@ wrote:
Bonjour Hugh
j'ai problème avec les msgbox : "les lignes passent en rouge"
un tuyau?
merci
J@@
'Gestion des erreurs
fin:
If Err.Number <> 0 Then
Select Case Err.Number
Case 1004
MsgBox "La macro a été interrompue parce que la
référence de la cellule est incorrecte" & Chr(13) & "Exemple de
saisie : a5 ou bien A5" & Chr(13) & Chr(13) & "Vous aviez saisi : " &
LigneDebut, , "Erreur dans l'exécution de la macro"
Case Else
MsgBox "La macro a été interrompue suite à une erreur #
" & Str(Err.Number) & " générée par " & Err.Source & Chr(13) &
Err.Description, , "Erreur d'ans l'exécution de la macro"
End Select
End If







Avatar
J
Bonjour Hugh
ça y est, c'est tout bon, il n'y avait en effet aucun retour de lignes
:-)
@+
J@@
Celà est peut-être dû à un renvoi à la ligne incorrecte lorsque tu
as procédé au copier-coller. Chez moi, je ne procède pas au renvoi
à la ligne. Si tu veux en avoir pour rendre le script plus lisible
(sans avoir à naviguer via l'ascenseur horizontal) tu peux ajouter un
"_" en fin de ligne qui permet le renvoi.
Mis à part ça, il s'agit peut-être une erreur dans ma syntaxe mais
vu que le script fonctionne sur mon poste (avec excel 2003) ...


J@@ wrote:
Bonjour Hugh
j'ai problème avec les msgbox : "les lignes passent en rouge"
un tuyau?
merci
J@@
'Gestion des erreurs
fin:
If Err.Number <> 0 Then
Select Case Err.Number
Case 1004
MsgBox "La macro a été interrompue parce que la
référence de la cellule est incorrecte" & Chr(13) & "Exemple de
saisie : a5 ou bien A5" & Chr(13) & Chr(13) & "Vous aviez saisi : " &
LigneDebut, , "Erreur dans l'exécution de la macro"
Case Else
MsgBox "La macro a été interrompue suite à une erreur #
" & Str(Err.Number) & " générée par " & Err.Source & Chr(13) &
Err.Description, , "Erreur d'ans l'exécution de la macro"
End Select
End If