[VBA - Excel] Histoire de boucle !
Résolu
Tuc
Messages postés
9
Statut
Membre
-
Tuc Messages postés 9 Statut Membre -
Tuc Messages postés 9 Statut Membre -
Bonjour,
Je débute en VBA et j'ai un petit problème technique.
Voici ma boucle :
J'aimerai que les [Compteur] et [i] soient remplacés par les valeurs de Compteur et i qui changent à chaque tour de boucle.
Par exemple au premier tour de boucle, avoir CheckBox1.Value, au deuxième CheckBox2.Value
J'ai aucune idée de comment introduire la valeur du compteur pour change le numéro des CheckBox à chaque tour de boucle (et de même comment changer de ligne avec i).
Merci d'avance
Tuc
Je débute en VBA et j'ai un petit problème technique.
Voici ma boucle :
Sub SupprimerParcelles_Click()
Dim Compteur As Integer
Dim Reponse As Integer
Compteur = 1
For Compteur = 1 To 20
If CheckBox[Compteur].Value = True Then
Reponse = MsgBox("Voulez-vous vraiment supprimer la parcelle " & [B4] & " ?", vbYesNo + vbQuestion + vbDefaultButton2, "Suppression de la parcelle")
If Reponse = vbYes Then
i = Compteur + 3
Range("B[i]:F[i]").Select
Selection.Delete Shift:=xlUp
CheckBox[Compteur].Value = False
Compteur = Compteur - 1
Else
CheckBox[Compteur].Value = False
End If
End If
Next Compteur
End Sub
J'aimerai que les [Compteur] et [i] soient remplacés par les valeurs de Compteur et i qui changent à chaque tour de boucle.
Par exemple au premier tour de boucle, avoir CheckBox1.Value, au deuxième CheckBox2.Value
J'ai aucune idée de comment introduire la valeur du compteur pour change le numéro des CheckBox à chaque tour de boucle (et de même comment changer de ligne avec i).
Merci d'avance
Tuc
A voir également:
- [VBA - Excel] Histoire de boucle !
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
7 réponses
Re-bonjour,
J'ai trouvé un début de réponse :
J'ai vérifié que CompteurBisB me donne bien "B4" au premier tour mais je me tape une erreur avec la sélection de la plage (Range...)
Sinon pour les CheckBox j'ai pensé à un truc genre :
Mais ça marche pas...pourquoi ????
Si quelqu'un peut m'aider ça m'arrangerai bien !
Tuc
J'ai trouvé un début de réponse :
CompteurBis = Compteur + 3
CompteurBisB = "B" & CompteurBis
CompteurBisF = "F" & CompteurBis
Range(" & CompteurBisB:" & CompteurBisF).Select
J'ai vérifié que CompteurBisB me donne bien "B4" au premier tour mais je me tape une erreur avec la sélection de la plage (Range...)
Sinon pour les CheckBox j'ai pensé à un truc genre :
CheckBoxCompteur = "CheckBox" & Compteur
If CheckBoxCompteur.Value = True Then
Mais ça marche pas...pourquoi ????
Si quelqu'un peut m'aider ça m'arrangerai bien !
Tuc
Bonjour,
Suggestion :
Lupin
Suggestion :
Sub SupprimerParcelles_Click()
Dim Compteur As Integer
Dim Reponse As Integer
Dim i As Integer
Dim strNomCheckBox As String
Compteur = 1
For Compteur = 1 To 20
strNomCheckBox = "CheckBox" & Compteur
If (Me.Controls(strNomCheckBox).Value = True) Then
Reponse = MsgBox("Voulez-vous vraiment supprimer la parcelle " & [B4] & " ?", vbYesNo + vbQuestion + vbDefaultButton2, "Suppression de la parcelle")
If Reponse = vbYes Then
i = Compteur + 3
Range("B" & i & ":F" & i).Select
Selection.Delete Shift:=xlUp
Me.Controls(strNomCheckBox).Value = False
Compteur = Compteur - 1
Else
Me.Controls(strNomCheckBox).Value = False
End If
End If
Next Compteur
End Sub
'
Lupin
Merci beaucoup ! Mais je me mange une petite erreur. Je suis sous Excel 2003. (ça vient peut-être de ça?)
Il aime pas "Me.Controls" à priori ! D'ailleurs je comprends pas cette fonction, mais ça avait l'air plutôt pas mal !
Imprime-écran de l'erreur en question :
https://www.hiboox.fr/
Merci encore pour ton aide !
Tuc
Il aime pas "Me.Controls" à priori ! D'ailleurs je comprends pas cette fonction, mais ça avait l'air plutôt pas mal !
Imprime-écran de l'erreur en question :
https://www.hiboox.fr/
Merci encore pour ton aide !
Tuc
Bonjour, bonjour Lupin,
Pour travailler avec plusieur contrôles (genre indexé)
voir ici
Tu peu façilement remplacer TextBox par CheckBox.
A+
EDIT: si tes checkBox sont sur une feuille excel tu dis, la syntaxe est un peu différente.
Pour travailler avec plusieur contrôles (genre indexé)
voir ici
Tu peu façilement remplacer TextBox par CheckBox.
A+
EDIT: si tes checkBox sont sur une feuille excel tu dis, la syntaxe est un peu différente.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui elles sont sur une feuille de calcul, en face de lignes que je veux pouvoir supprimer en cliquant sur un bouton "supprimer" qui est sensé supprimer les lignes cochées...
Tuc
Tuc
Enfin, quoi qu'il en soit, un exemple pour passer en revue tout les CkeckBox de la feuil
Adapter le nom de la feuille.
A+
Private Sub CommandButton21_Click()
Dim Obj As OLEObject
'boucle sur les objets de la Feuil1
For Each Obj In Sheets("Feuil1").OLEObjects
'verifie s'il s'agit d'un CheckBox
If TypeOf Obj.Object Is MSForms.CheckBox Then
If Obj.Object.Value = True Then
'Exemple d'action à effectuer si le CheckBox est coché.
N = Val(Right(Obj.Name, 3)) + Lig1
Rows(N).Hidden = True
End If
End If
Next Obj
End Sub
Adapter le nom de la feuille.
A+