Execel VBA : faire n boucles avec les macros
Résolu/Fermé
hoquei44
Messages postés
16581
Date d'inscription
dimanche 19 janvier 2014
Statut
Membre
Dernière intervention
11 mai 2025
-
16 juin 2017 à 14:45
hoquei44 Messages postés 16581 Date d'inscription dimanche 19 janvier 2014 Statut Membre Dernière intervention 11 mai 2025 - 17 juin 2017 à 08:28
hoquei44 Messages postés 16581 Date d'inscription dimanche 19 janvier 2014 Statut Membre Dernière intervention 11 mai 2025 - 17 juin 2017 à 08:28
A voir également:
- Execel VBA : faire n boucles avec les macros
- Excel compter cellule couleur sans vba - Guide
- Mkdir vba ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Autofill vba ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
3 réponses
ccm81
Messages postés
10908
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 mai 2025
2 431
16 juin 2017 à 15:25
16 juin 2017 à 15:25
Bonjour
Je ne vois pas trop où tu veux en venir, mais essaies ceci
Cdlmnt
Je ne vois pas trop où tu veux en venir, mais essaies ceci
Const n = 10 Sub OK() Dim k As Long, adfin As String With ActiveSheet For k = 1 To n .Range("A8").Value = "I-" & Format(k, "000") adfin = .Cells(8, Columns.Count).End(xlToLeft).Address .Range("I8:" & adfin).Copy .Range("I" & 9 + k) Next k End With End Sub
Cdlmnt
ccm81
Messages postés
10908
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 mai 2025
2 431
Modifié le 16 juin 2017 à 17:02
Modifié le 16 juin 2017 à 17:02
Et ce n'est pas ce que fait le code proposé plus haut, mis à part la constante n qui devrait être déclarée comme variable et affectée du contenu de K1 lors de l'exécution ?
voir procedure OK
http://www.cjoint.com/c/GFqpalW64za
Cdlmnt
voir procedure OK
http://www.cjoint.com/c/GFqpalW64za
Cdlmnt
hoquei44
Messages postés
16581
Date d'inscription
dimanche 19 janvier 2014
Statut
Membre
Dernière intervention
11 mai 2025
16 juin 2017 à 17:15
16 juin 2017 à 17:15
Je viens de voir le fichier. Je vais essayer de le tester car cela ressemble à ce que j'attends.
Merci ccm81
Merci ccm81
hoquei44
Messages postés
16581
Date d'inscription
dimanche 19 janvier 2014
Statut
Membre
Dernière intervention
11 mai 2025
>
hoquei44
Messages postés
16581
Date d'inscription
dimanche 19 janvier 2014
Statut
Membre
Dernière intervention
11 mai 2025
16 juin 2017 à 20:46
16 juin 2017 à 20:46
J'ai eu du mal à comprendre pourquoi cela ne marchait pas.
J'avais déjà une macro nommée OK dans mon classeur. Et c'est donc l'autre macro qui s'actionnait quand j'essayais de la lancer.
hum, hum, bon
Il y aurait juste un point qui ne fonctionne pas bien. Et je pense que cela expliquerait le fait que vous n'avez pas saisie l'intérêt de ce que je voulais faire.
Vous avez dû vous dire qu'il suffisait de faire un copier-coller puis de dérouler pour obtenir le résultat, mais :
Les cellules copiées ne doivent pas être collées directement mais un collées via "option collage / valeurs (v) - 123 ".
En effet j'ai mis des formules de calcul dans les cases copiés qui sont modifiées à chaque changement de la case A8.
Je ne sais pas comment intégrer l'équivalent de cette portion dans votre code.
CB
J'avais déjà une macro nommée OK dans mon classeur. Et c'est donc l'autre macro qui s'actionnait quand j'essayais de la lancer.
hum, hum, bon
Il y aurait juste un point qui ne fonctionne pas bien. Et je pense que cela expliquerait le fait que vous n'avez pas saisie l'intérêt de ce que je voulais faire.
Vous avez dû vous dire qu'il suffisait de faire un copier-coller puis de dérouler pour obtenir le résultat, mais :
Les cellules copiées ne doivent pas être collées directement mais un collées via "option collage / valeurs (v) - 123 ".
En effet j'ai mis des formules de calcul dans les cases copiés qui sont modifiées à chaque changement de la case A8.
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
Je ne sais pas comment intégrer l'équivalent de cette portion dans votre code.
CB
ccm81
Messages postés
10908
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 mai 2025
2 431
16 juin 2017 à 22:08
16 juin 2017 à 22:08
Sub OK() Dim k As Long, adfin As String, n As Long With ActiveSheet n = .Range("K1").Value For k = 1 To n .Range("A8").Value = "I-" & Format(k, "000") adfin = .Cells(8, Columns.Count).End(xlToLeft).Address .Range("I8:" & adfin).Copy .Range("I" & 9 + k).PasteSpecial Paste:=xlPasteValues Next k End With End Sub
Cdlmnt
hoquei44
Messages postés
16581
Date d'inscription
dimanche 19 janvier 2014
Statut
Membre
Dernière intervention
11 mai 2025
17 juin 2017 à 08:28
17 juin 2017 à 08:28
Merci ! c'est bon pour moi
Modifié le 16 juin 2017 à 17:06
Ca veut dire que je me suis mal exprimé.
Je cherche un moyen d'éviter les répétitions dans mon code. Le but est que je n'ai plus à rajouter un bloc supplémentaire à chaque fois que je rajoute une ligne.
Le résultat attendu serait plutôt du type (même si je sais que je vais écrire ne veut rien dire) :
Bonne journée