esttevan
Messages postés5Date d'inscriptionmardi 24 septembre 2013StatutMembreDernière intervention31 octobre 2013
-
24 sept. 2013 à 15:22
esttevan
Messages postés5Date d'inscriptionmardi 24 septembre 2013StatutMembreDernière intervention31 octobre 2013
-
24 sept. 2013 à 16:56
Bonjour,
Je souhaiterais avoir une macro permettant de renseigner un texte un certain nombre de fois dans une colonne, une fois accompli passer aux remplissage d'un autre texte ainsi de suite jusqu'à une valeur donné et ensuite se décaler dans la colonne à côte pour effectuer le reste des opérations.
Par exemple : A6 = TATA B6 = 15
A7 = TITI B7 = 14
A8 = TOTO B8 = 15
C15 = 25 D15 = 10 E15 = 10
en C16 je voudrais "TATA" 15 fois donc jusqu'à C30, ensuite écrire "TITI" 10 fois (valeur C15) donc jusqu'à C41 et les 4 "TITI" restant les inclure la colonne d'à côté donc en D26, les compléter avec 6 "TOTO" (valeur D15) donc jusqu'à D50 puis finir en colonne E... et ainsi de suite.
Normalement ici, on fourni une aide sur un souci technique précis.
Souci pour lequel l'utilisateur nous montre le code qu'il a essayé de réaliser et pour lequel il rencontre un problème..
Bref, normalement , nous ne fournissons pas un code sur mesure (et surtout ... sur commande...).
Mais bon,
Vu la complexité de la demande (humm...sans commentaires...), j'ai pris 50 secondes pour te proposer celui-ci :
Sub rempl()
Dim NbCopy As Integer
NbCopy = 0
'On commence la copie à la ligne 16
Dim Start As Integer
Start = 16
' Colonne C
Dim Col As Integer
Col = 3
'NbLignes Max première colonne
NbLmax = Cells(15, Col).Value
'faire une boucle des lignes 6 à 12'
For l = 6 To 12
MonTxt = Cells(l, 1).Value
Nbfois = Cells(l, 2).Value
'boucle pour inscrire les données
For i = Start To Start + Nbfois
If NbCopy = NbLmax Then
Col = Col + 1
NbLmax = Cells(15, Col).Value
' si la colonne n'a pas de NbLmax, on quitte
If NbLmax = "" Then Exit Sub
NbCopy = 0
End If
NbCopy = NbCopy + 1
Cells(i, Col).Value = MonTxt
Next 'On passe à la valeur suivante
Start = Nbfois + Start + 1
Next
End Sub