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

2 questions sous vba

3 réponses
Avatar
picmin
Salut,
voila mes 2 questions:
je voudrais dans une macro supprimer une ligne en fonction du numéro que je
mets dans la case B1; dabs cette cellule, j'écris 1 par exemple et j'aimerais
que cela supprime la ligne 1. Et cela automatiquement, si il ya ecrit 5, cela
supprimerai la ligne 5.
Ma 2ème question est la suivante:
je voudrais ecrire ca sous vba
si la cellule C4 (la valeur que je mets dedans) a le même nom que l'onglet
d'une feuille du classeur (ou si la feuille au nom de la cellule C4 existe
déjà)
alors il ne se passe rien
et sinon je lance une macro

Voila, merci de me répondre si vous avez des idées.

3 réponses

Avatar
Elliac
Bonjour,

Attention le fait de supprimer la ligne 1 supprimera la cellule B1 :
Sub Titi()
Rows(Range("b1")).Delete
End Sub

Si la feuille mentionnée en C4 n'existe pas lancera la macro Toto :
Sub Tutu()
a = Sheets(1).Range("c4")
For Each sh In ActiveWorkbook.Sheets
If a = sh.Name Then Exit Sub
Next
Toto
End Sub

Camille

"picmin" wrote:

Salut,
voila mes 2 questions:
je voudrais dans une macro supprimer une ligne en fonction du numéro que je
mets dans la case B1; dabs cette cellule, j'écris 1 par exemple et j'aimerais
que cela supprime la ligne 1. Et cela automatiquement, si il ya ecrit 5, cela
supprimerai la ligne 5.
Ma 2ème question est la suivante:
je voudrais ecrire ca sous vba
si la cellule C4 (la valeur que je mets dedans) a le même nom que l'onglet
d'une feuille du classeur (ou si la feuille au nom de la cellule C4 existe
déjà)
alors il ne se passe rien
et sinon je lance une macro

Voila, merci de me répondre si vous avez des idées.



Avatar
Excel...lent
Salut picmin,

Bonne année à toi.

Alors pour la 1ère question cela pourrait ressembler à ça :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
GoTo SUPROW
End If
Exit Sub

SUPROW:
If [a1] = "1" Then
Exit Sub
End If

Rows([a1]).Select
Selection.Delete Shift:=xlUp
End Sub

Code VBA à mettre dans le module de la feuille où se trouve les lignes à
supprimer
C'est dans la cellule A1 que tu mettra la valeur de la ligne que tu veux
supprimer. Le code bien sur évitera de supprimer la ligne 1 là où se trouve
la cellule A1.

Pour mettre le code dans le module de la feuille : bouton droit / visualiser
le code et tu coles le code.

Pour tadeuxième question je n'y ai pas encore réfléchi.

Cordialement.

Excel...lent

N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm
Avatar
Youky
Un click droit sur ta feuille en question et visualiser le code et copie
cela
Youky
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
If Target.Value = "" Then Exit Sub
If IsNumeric(Target.Value) Then
Rows(Target.Value).Delete
Target.Value = ""
End If
End If
If Target.Address = "$C$4" Then
For k = 1 To Sheets.Count
If Sheets(k).Name = Target.Value Then trouvé = 1
Next
If trouvé = 0 Then
'nom de ta macro
End If
End If
End Sub


"picmin" a écrit dans le message de news:

Salut,
voila mes 2 questions:
je voudrais dans une macro supprimer une ligne en fonction du numéro que
je
mets dans la case B1; dabs cette cellule, j'écris 1 par exemple et
j'aimerais
que cela supprime la ligne 1. Et cela automatiquement, si il ya ecrit 5,
cela
supprimerai la ligne 5.
Ma 2ème question est la suivante:
je voudrais ecrire ca sous vba
si la cellule C4 (la valeur que je mets dedans) a le même nom que l'onglet
d'une feuille du classeur (ou si la feuille au nom de la cellule C4 existe
déjà)
alors il ne se passe rien
et sinon je lance une macro

Voila, merci de me répondre si vous avez des idées.