Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boucle VBA Excel 2007

  • Initiateur de la discussion Initiateur de la discussion marchesse31
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

marchesse31

Guest
Bonjour à tous,

J'ai réalisé deux petits programmes:
Sub Compteur3_Up()
Range("G4").Value = Range("G4").Value + 1
Range("F4").Value = Range("F4").Value - 1
Range("E4").Value = Range("E4").Value - 1
End Sub

Sub RAZ()
Range("G4") = 0
End Sub

me permettant d'incrémenter et de décrémenter des cellules d'une même ligne et d'autre part de remettre à zéro l'une d'entre elles mais je ne sais pas étendre ces deux programmes à toute ma feuille excel: 321 lignes. Je n'ai pas vraiment envie de les retaper 321 fois...Sachant que chaque ligne est indépendante.
Pouvez-vous m'aider svp?

Merci d'avance.
 
Re : Boucle VBA Excel 2007

Bonjour marchesse31

Un exemple de boucle:
VB:
Sub Compteur3_Up()
Dim i As Integer
For i = 4 To 321
    Range("G" & i).Value = Range("G" & i).Value + 1
    Range("F" & i).Value = Range("F" & i).Value - 1
    Range("E" & i).Value = Range("E" & i).Value - 1
Next i
End Sub

Cordialement
 
Re : Boucle VBA Excel 2007

Bonjour;

Peut-etre comme ceci
Code:
Sub Compteur3_Up()
    Dim iRow As integer
    Dim gRange as string
    Dim fRange as string
    Dim eRange as string

   For iRow = 4 to 321
       gRange = "G" & Cstr(iRow)
       fRange = "F" & Cstr(iRow)
       eRange = "E" & Csts(iRow)
 
      Range(gRange).Value = Range(gRange).Value + 1
      Range(fRange).Value = Range(fRange).Value - 1
      Range(eRange).Value = Range(eRange).Value -1
   next iRow
End Sub
 
Re : Boucle VBA Excel 2007

Juste une dernière chose, les lignes sont indépendantes les unes des autres alors qu'avec cette boucle tout est lié...
Je ne sais pas ce qui reste à modifier!
 
Re : Boucle VBA Excel 2007

Re
Bonjour Zdz16
@ marchesse31

Mets un petit fichier exemple annonyme, avec quelques explications et on verras ça dès demain, à moins qu'une bonne âme ne passe avant 🙂
Cordialement
 
Re : Boucle VBA Excel 2007

Bonjour à tous,

Sous réserve d'avoir compris, les compteurs et la raz uniquement pour la ligne de la cellule active au moment du déclanchement de la macro.

Cordialement

KD

VB:
Sub Compteur_Up()
    Dim r&, j%
    r = ActiveCell.Row
    For j = 5 To 7
        Cells(r, j) = Cells(r, j) - 1 - 2 * (j = 7)
    Next j
End Sub
Sub Raz()
    Dim r&
    r = ActiveCell.Row
    Cells(r, 7) = 0
End Sub
 
Re : Boucle VBA Excel 2007

Bonjour;

Voici un exemple contenant la procédure.

Pour ton fichier, je n'ai pas compris à ce que tu veux faire. Peut-tu décrire le fonctionnement et l'utilisation que tu veux.

Cordialement
 

Pièces jointes

Dernière édition:
Re : Boucle VBA Excel 2007

Bonjour marchesse31, Zdz16, Bonjour KenDev
Pour gérer autant de contrôles sans passer par un module de classe, il faut récupérer le numéro de la ligne où se trouve le contrôle appelant.
Je propose
VB:
Sub test_Compteur3_Up()
Dim I&
I = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
Range("G" & I).Value = Range("G" & I).Value + 1
Range("F" & I).Value = Range("F" & I).Value - 1
Range("E" & I).Value = Range("E" & I).Value - 1
End Sub
Et
VB:
Sub Test_RAZ()
Dim I&
I = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
Range("G" & I) = 0
End Sub

Ces codes récupèrent l'emplacement des toupies et modifient les cellules de la même ligne.
Tu sera obligé de lier chaque élément à son code correspondant.

Pour le second problème soit tu lie tes toupies une à une aux cellules correspondentes soit tu lie une à une les toupies à une macro générale (à toi de voir)

Cordialement
 
Dernière édition:
Re : Boucle VBA Excel 2007

Merci à tous pour vos réponses, ça m'a beaucoup aidé!!! Dernière petite chose, avez-vous une idée concernant mon problème de toupies que j'ai évoqué hier dans mon fichier joint Stock_dépôt?
Merci d'avance.
 
Re : Boucle VBA Excel 2007

Bonjour à tous;

A tout hasard, il ne serai pas judicieux de créer une userform dans laquelle tu peu sélectionner ton article, afficher la situation de l'article et saisir tes valeurs voulues (voir même ajouter le contrôl spin, si tu veux) et mettre à jour la feuille.
Je pense que c'est plus simple et tu aura la possibilte d'ajouter tes conditions et vérifications.

Bon, c'est une idée comme une autre.

Question pour Efgé, y-a-t-il un moyen de modifier dynamiquement les propriétés du contrôl Spin (Toupie) via Vba ?
je pense qu'il faut creuser de ce coté.

Cordialement
 
Re : Boucle VBA Excel 2007

Re

...Question pour Efgé, y-a-t-il un moyen de modifier dynamiquement les propriétés du contrôl Spin (Toupie) via Vba ?
je pense qu'il faut creuser de ce coté.

Il y a moyen de tout modifier, si et seulement si, on utilise les bons contrôles.
Ici il s'agit de toupies Formulaires. Leurs possibilités sont très réduites et leurs manipulations sujettes à problèmes contrairement aux contrôles ActiveX, qui eux possèdent des évennement interceptables (Change en particulier).

A mon avis, que je partage avec moi-même dès que je me réuni, un fichier avec autant d'objets devrait être géré par Module de Classe.

Mais comme ce genre de gestion peut s'avérer complexe pour des non habitués du codage, j'ai proposé une solution simple, certainement pas la meilleure mais façilement applicable.

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
756
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
906
Réponses
6
Affichages
738
Réponses
1
Affichages
671
Réponses
12
Affichages
756
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
615
Réponses
2
Affichages
673
Réponses
7
Affichages
988
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…