Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
907 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Incrémentation automatique selon une variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA Incrémentation automatique selon une variable

n°2010623
Dude Tagad​a
Posté le 21-07-2010 à 13:15:00  profilanswer
 

Bonjour à tous amis programatteurs.
 
Voila je me casse la tête pour mettre au point un petit programme me permettant de :
 
copier coller une liste de valeur qui est variable. (j'ai déja trouvé le code)
 
Cependant selon la valeur il faut incrémenter un nombre de ligne qui peut-être variable.
 
 
Pour chaque valeur j'ai déja réussi à déterminé chaque nombre de lignes que je dois incrémenté mais je ne trouve pas comment définir la variable et l'écriture de l'incrémentation pour arriver à mes fins.
 
 
 
Exemple :
 
Tableau de départ :
       K     L
 
4      a      
5      b      
 
 
Après formule j'obtient ceci
       K     L(=nombre incrémentation)
 
4      a     2
5      b     1
6      c     0
 
 
 
 
Dans mon tableau de sorti je voudrais obtenir ceci :
 
       F
4     a  
5     a
6     a
7     b
8     b
9     c
 
 
Précision : la première valeur est déjà copier par mon programme, je cherche donc simplement à y intégrer l'incrémentation variable.
 
Je reste connecté pour tout autre information suceptibles de vous aider.
 
Je vous remercie par avance pour votre aide, car je dois vous avouez que je bloque totalement.
 
Cordialement

mood
Publicité
Posté le 21-07-2010 à 13:15:00  profilanswer
 

n°2010626
Xxxaaavvv
Posté le 21-07-2010 à 13:19:37  profilanswer
 

C'est pas très comprehensible ton truc :o
T'es sous Excel ?
 
Incrémentation ça veux dire rajouter 1 au contenu d'une variable.
Dans tes tableaux je ne comprend pas ou sont tes incrémentations...

n°2010641
Dude Tagad​a
Posté le 21-07-2010 à 13:54:53  profilanswer
 

Je te remercie pour ta réponse.
 
Si tu regardes mes tableaux, tu verras que j'ai une liste abc que je dois copier dans un tableau de sortie.
 
Selon la lettre je dois incrémenter Xfois.
 
ainsi tu te retrouve avec aaabbc
a est collé 2 fois (en plus de la premiere copie), B 1 fois, et c 0 fois.
 
comme mon systeme de copiage se fait en descente de liste, je voudrais une incrémentation en descente
 
en gros ca te donne ca :
 
a est copié
Incrémentation x fois a
on passe a b
b est copié
incrémentation x fois de b
 
etc...
 
je dois le faire pour 3000 lignes :-s voila pk je voudrais utilisé une macro. Il me manque simplement la formule d'incrémentation avec la variable x
 
 
Cordialement
 

n°2010651
Xxxaaavvv
Posté le 21-07-2010 à 14:12:05  profilanswer
 

Ok ok
n'utilise pas le mot incrémentation alors :D
 
en fait tu fait X insertions de ligne dans Excel. Ou X est le chiffre a coté de la lettre.
 
 
la technique pour insérer X ligne est la suivante
selectionner X lignes, et faire une insertion de ligne qui déplace tout les bloc vers le bas.
 
Exemple : Insérer 5 lignes (en déplaçant la ligne 7 vers la ligne 12)
 
ActiveWorkbook.Worksheets("Feuil1" ).Rows("7:11" ).Insert Shift:=xlDown
 
à toi d'adapter le truc :D
 
 
 
 

n°2010658
Dude Tagad​a
Posté le 21-07-2010 à 14:23:44  profilanswer
 

Je test ça et je te dis ça ;-)
 
Merci pour l'aide

n°2010676
Dude Tagad​a
Posté le 21-07-2010 à 14:32:11  profilanswer
 

Non en fait ça ne correspond pas à ce que j'execute, tout du moins je ne pense pas...
 
Mon programme me met 1 a, 1 b, 1 c
 
Tu fais une insertion quand tu as toute les valeurs, dans mon cas ces valeurs sont variable tout comme leur répétition.
 
Imaginons qu'on oubli ces répétitions.
 
dans mon tableau de sortie j'obtiendrais juste :
a
b
c
 
au niveau du fonctionnement ca donnerai ca (essai de faire sur un tableau excel cette manip, tu met une lettre dans une cellule et tu fais copie incrémentée bas)
 
 
 
 
 
Je te laisse un petit exemple de mon tableau de sortie
 
Etape 1
a
 
Etape 2
a
a
a
 
Etape 3
a
a
a
b
 
Etape 4
a
a
a
b
b
 
etape 5
a
a
a
b
b
c
 
 
 
 
Tu en penses quoi ?
 
Cordialement

n°2010693
Xxxaaavvv
Posté le 21-07-2010 à 14:46:03  profilanswer
 

Dude Tagada a écrit :

Non en fait ça ne correspond pas à ce que j'execute, tout du moins je ne pense pas...
 
Mon programme me met 1 a, 1 b, 1 c
 
Tu fais une insertion quand tu as toute les valeurs, dans mon cas ces valeurs sont variable tout comme leur répétition.
 
Imaginons qu'on oubli ces répétitions.
 
dans mon tableau de sortie j'obtiendrais juste :
a
b
c
 
au niveau du fonctionnement ca donnerai ca (essai de faire sur un tableau excel cette manip, tu met une lettre dans une cellule et tu fais copie incrémentée bas)
 
 
 
 
 
Je te laisse un petit exemple de mon tableau de sortie
 
Etape 1
a
 
Etape 2
a
a
a
 
Etape 3
a
a
a
b
 
Etape 4
a
a
a
b
b
 
etape 5
a
a
a
b
b
c
 
 
 
 
Tu en penses quoi ?
 
Cordialement


 
au départ tu a bien le tableau avec les lettres, et a coté les chiffres non ?
 
bah en gros tu fait une boucle qui lit une ligne et insert autant de ligne après que le chiffre indiqué sur la ligne en cours non ?
 
 

n°2010709
Dude Tagad​a
Posté le 21-07-2010 à 14:54:14  profilanswer
 

Non justement, au départ je n'ai qu'un tableau d'une colonne avec les lettres.
 
Pour faire apparaître les nombres j'utilise une rechercheV d'une pivot table que j'exporte manuellement (pour le moment)
 
 
Je te poste mon code pour faire la copie des valeurs, il faut juste insérer l'expression pour repeté la lettre... ce que je n'arrive pas à faire...
 
 
Sub incre2()
 
Dim FirstRow, LastRow, FirstColumn, LastColumn, TabWide, Tabheight As Integer
 
FirstRow = 4
FirstColumn = 11
     
 
LastColumn = FirstColumn
 
Dim rowout As Integer
rowout = 4
Dim C As Integer
C = FirstColumn
 
'For N-1
Tabheight = Sheets(1).Cells(FirstRow, FirstColumn).End(xlDown).Row
TabWide = Sheets(1).Cells(FirstRow, FirstColumn).CurrentRegion.Columns.Count
Dim SelectedRows As Integer
For SelectedRows = FirstRow To Tabheight
 
Sheets(1).Cells(rowout, 6).Value = Sheets(1).Cells(SelectedRows, C).Value
 
(A MON SENS IL FAUT INSERER A CET ENDROIT)
 
rowout = rowout + 1
Next SelectedRows
 
 
 
End Sub

n°2010711
Dude Tagad​a
Posté le 21-07-2010 à 14:56:30  profilanswer
 

J'ajoute quelque infos :
 
Les valeurs apparâissent à la ligne 4
Les titre en 3
 
le tableau de sorti va de F à I
Le tableau de donné est en K
Le nombre de répétition de la lettre obtenu par la fonction Recherche V en L

n°2010927
Dude Tagad​a
Posté le 22-07-2010 à 10:33:01  profilanswer
 

Je continue de chercher mais je ne trouve pas...

mood
Publicité
Posté le 22-07-2010 à 10:33:01  profilanswer
 

n°2011783
Dude Tagad​a
Posté le 26-07-2010 à 12:56:09  profilanswer
 

J'ai trouvé la solution c'était tout bête
 
 
Sub incre2()
 
Dim FirstRow, LastRow, FirstColumn, LastColumn, TabWide, Tabheight As Integer
 
FirstRow = 4
FirstColumn = 11
     
 
LastColumn = FirstColumn
 
Dim rowout As Integer
rowout = 4
Dim C As Integer
C = FirstColumn
 
'For N-1
Tabheight = Sheets(1).Cells(FirstRow, FirstColumn).End(xlDown).Row
TabWide = Sheets(1).Cells(FirstRow, FirstColumn).CurrentRegion.Columns.Count
Dim SelectedRows As Integer
For SelectedRows = FirstRow To Tabheight
 
Sheets(1).Cells(rowout, 6).Value = Sheets(1).Cells(SelectedRows, C).Value
 
X = Sheets(1).Cells(SelectedRows, 12).Value
 
If X > 1 Then Sheets(1).Cells(rowout, 6).Resize(1).AutoFill Destination:=Sheets(1).Cells(rowout, 6).Resize(X), Type:=xlFillDefault
    Sheets(1).Cells(rowout, 6).Resize(X).FillDown
 
If X = 1 Then Sheets(1).Cells(rowout, 6).Value = Sheets(1).Cells(SelectedRows, C).Value
 
rowout = rowout + X
 
 
Next SelectedRows

n°2011876
SuppotDeSa​Tante
Aka dje69r
Posté le 26-07-2010 à 16:38:40  profilanswer
 

Dude Tagada a écrit :

Bonjour à tous amis programatteurs.


 
J'adore...  :love:


---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Incrémentation automatique selon une variable

 

Sujets relatifs
Evaluation de variable globale avant celle du mainVariable $_SERVER['SCRIPT_URI'] pas disponible
Afficher liste paramètres Fonction VBAVBA / Définir taille graphique à sa création
VBA tcd | problème avec un filtrepowershell - variable après un pipe ?
Débuter avec VBA[VBA] Formulaire continu avec un recordset
Passer une variable qui a un caractere & dans l'URLEXCEL : Envoyer automatique un tableau croisé dynamique par mail
Plus de sujets relatifs à : VBA Incrémentation automatique selon une variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR