[VBA - Excel] Histoire de boucle !
Résolu
Tuc
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Tuc Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Tuc Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
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
- Fiche de pointage excel - Télécharger - Tableur
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+