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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  boucle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

boucle

n°1422658
GillooZ
un reportage de filip loulou
Posté le 09-08-2006 à 09:00:58  profilanswer
 

pour boucler sur les lignes c'est facile on utilise par exemple  
 
With Worksheets("mafeuille" )
 
Dim i As Integer
 
    For i = 1 To 2000 Step 1
        .Range("A" & i) = machin
    Next
 
Mais pour boucler sur les colonnes?
par exemple pour boucler de la colonne S à AD ?
 
Merci à tous

mood
Publicité
Posté le 09-08-2006 à 09:00:58  profilanswer
 

n°1422702
GillooZ
un reportage de filip loulou
Posté le 09-08-2006 à 10:46:56  profilanswer
 

je decris plus précisement mon problème car j'ai avancé.
 
J'ai donc un tableau sur une feuille avec en ligne les clients et en colonne les mois. Ce tableau contient donc des valeurs numériques.
 
Mes données de départ son une date de début de traitement et une date de fin.
 
je cherche a sommer les valeurs numériques / mois / client dans une cellule.
 
Voila mon code :
 
Dim cptCliDeno As Integer
Dim LigneDeno As Integer
Dim MoisColonne As Integer
 
.Range("AD51" ) = 0
'case contenant la somme recherchée
MoisColonne = 0
 
For cptCliDeno = 33 To 49 Step 1  
   If .Range("R" & cptLigneDeno) = ListBoxDenoCli.Value Then
        LigneDeno = cptCliDeno
Next
'permet de récupérer la ligne du client concerné, cette partie marche
 
.Columns("S:AD" )
'deja je sais pas si on peut faire ca, et moi je voudrais selectionner que les cellules des colonne S à AD mais que la ligne concernant le client trouvé
 
.Range("S" &  LigneDeno).Activate
For Each Cell in Selection
   MoisColonne = MoisColonne + 1  
   If MoisColonne >= Month(DateDebut) Or MoisColonne <= Month(DateFin) Then
       .Range("AD51" ) = .Range("AD51" ) + Cell.Value
   End If
Next
 
voila mais evidement ma selection pourri et ma boucle sur cette selection ne marche pas :/
 
Merci à tous !

n°1422706
GillooZ
un reportage de filip loulou
Posté le 09-08-2006 à 10:53:49  profilanswer
 

ou alors avoir un tableau de 12 case Int
 
Denominateur(12) As Integer  
dans lequel je pourrai mettre tous les dénominateurs pour chaque mois pour un client voulu  
il suffirai simplement de boucler sur la ligne voulu et de sommer chaque cellule
 
on fait comment pour faire une selection d'une ligne ?
par exemple pour selectionner les cellules "S44" à "AD44", boucler dessus pour sommer la valeur des cellules ?

n°1422707
GillooZ
un reportage de filip loulou
Posté le 09-08-2006 à 10:57:29  profilanswer
 

Columns("S:AD" )  
'deja je sais pas si on peut faire ca, et moi je voudrais selectionner que les cellules des colonne S à AD mais que la ligne concernant le client trouvé  
 
.Range("S" &  LigneDeno).Activate  
For Each Cell in Selection  
   MoisColonne = MoisColonne + 1  
   TabDeno(MoisColonne) = Cell.Value
Next  
 
un truc du genre :)

n°1422924
GillooZ
un reportage de filip loulou
Posté le 09-08-2006 à 15:16:34  profilanswer
 

personne sait ??? :'(:'(:'(
 
me manque que ca pour finir mon prog !!!
 

n°1422941
galopin01
Posté le 09-08-2006 à 15:28:47  profilanswer
 

On attendait que tu te fasses ta réponse !
 
mavar = 44
For each o in Range("S" & mavar & ":AD" & mavar )


Message édité par galopin01 le 09-08-2006 à 15:29:19
n°1422943
GillooZ
un reportage de filip loulou
Posté le 09-08-2006 à 15:32:09  profilanswer
 

okayz je continue mon truc pour trouver
 
merci !

n°1422950
GillooZ
un reportage de filip loulou
Posté le 09-08-2006 à 15:38:39  profilanswer
 

voila ce que j'ai fait :
 
For Each o in Range("S" & LigneDebut & ":AD" & LigneDebut)

n°1422952
galopin01
Posté le 09-08-2006 à 15:39:15  profilanswer
 

Citation :

je continue mon truc pour trouver

Tu continues pour trouver quoi ? ma réponse te suffit pas ?
Je n'ai pas été plus loin car je te trouve un peu... brouillon et je n'ai pas tout compris, mais ce début de boucle devrait te suffire pour sommer le contenu.
A+

n°1422955
GillooZ
un reportage de filip loulou
Posté le 09-08-2006 à 15:40:37  profilanswer
 

voila ce que j'ai fait :  
 MoisColonne = 1
 LigneDebut = 44
For Each o in Range("S" & LigneDebut & ":AD" & LigneDebut)  
    TabDeno(MoisColonne) = o
    LigneDebut = LigneDebut + 1
    MoisColonne = MoisColonne + 1
Next o
 
mais ca me fait une erreur 457 : cette clé est déjà associé à un élément de cette collection

mood
Publicité
Posté le 09-08-2006 à 15:40:37  profilanswer
 

n°1422990
GillooZ
un reportage de filip loulou
Posté le 09-08-2006 à 16:16:44  profilanswer
 

je capte pas la depuis que j'ai eu cette erreur mon userform refuse de se lancer ????
 

n°1423368
GillooZ
un reportage de filip loulou
Posté le 10-08-2006 à 08:46:36  profilanswer
 

en fait la la procedure initialize de mon userform, j'ai 2 autres listbox que j'alimente de cette maniere :
 
Dim Cell As Range, Valeur As Range
Dim Unique As New Collection
Dim j As Byte
On Error Resume Next
For Each Cell In Range("enr_incidents!Customers" )
    Unique.Add Cell, CStr(Cell)
Next Cell
On Error GoTo 0
For Each Valeur In Unique
    ListCli.AddItem Valeur
    ListCli2.AddItem Valeur
    ListBoxDenCli.AddItem Valeur
Next Valeur
'alimentation de la listbox client en enlevant les redondances
ListBoxResp.MultiSelect = fmMultiSelectExtended
'initialisation de la multi selection de la listbox client
Dim Cell2 As Range, Valeur2 As Range
Dim Unique2 As New Collection
For Each Cell2 In Range("enr_incidents!ResponsabiliteZ" )
    Unique2.Add Cell2, CStr(Cell2)
Next Cell2
On Error GoTo 0
For Each Valeur2 In Unique2
    ListBoxResp.AddItem Valeur2
Next Valeur2
'alimentation de la listbox responsabilité en enlevant les redondances
 
et depuis que j'ai mis le code ci dessus, pour lancer mon userform je dois enlever une des 2 alimentations de mes listbox sinon j'ai une erreur 457.
 
D'ou cela provient il ?

n°1423378
GillooZ
un reportage de filip loulou
Posté le 10-08-2006 à 08:55:43  profilanswer
 

Pour ma boucle je pense que mon code est correct, mais des que  
 
For Each Cell In Range("S" & LigneDeno & ":AD" & LigneDeno)
        MoisColonne = MoisColonne + 1
        TabDeno(MoisColonne) = CInt(Cell)
   Next
 
Mais des que j'ai mis ces lignes et que j'ai voulu lancer le userform, j'ai eu la meme erreur 457 ...

n°1423381
GillooZ
un reportage de filip loulou
Posté le 10-08-2006 à 09:02:01  profilanswer
 

et meme si j'enleve ce code, l'erreur est toujours la et le seul moyen de la virer est de retirer l'alimentation d'une de mes listbox au démarrage ... qqun à un idee ???


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

  boucle

 

Sujets relatifs
boucle pour comparer des colonnesproblème de boucle
portée indices de boucleproblème de boucle/session : envoi de doublons en nombre variable ?!
Boucle forfaire une boucle dépendant d'une procédure évenementielle
[C] Boucle avec strcat pour créer plusieurs fichiersprobleme affichage boucle
problème de variable en boucle arrivant d'un formulaireprobleme de double boucle et variables... [résolu]
Plus de sujets relatifs à : boucle


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