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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  petite question pour programmer sous VB

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

petite question pour programmer sous VB

n°1315515
lala922
Posté le 28-02-2006 à 17:36:38  profilanswer
 

comment fait on sous VB pour appeler toutes les cellules se référant au même nom
si jai 100 cellules dont plusieurs dont le nom est paris et que je veux selectionner le chiffre associé à toutes les cellules dont le nom est paris
ex
paris         2
lyon          1
brest         6
paris          4
lyon           4
 
et je voudrais une commande qui fasse paris=6 et lyon=5???
Si qqun a une idée ca m'aiderait beaucoup!!!
merci davance

mood
Publicité
Posté le 28-02-2006 à 17:36:38  profilanswer
 

n°1315650
Lord Nelso​n
Posté le 28-02-2006 à 21:17:50  profilanswer
 

Salut,
 
Je ne suis pas sûr d'avoir tout compris, mais si tu veux donner un code numérique à chaque ville, tu peux faire ceci :


Sub Code_Ville()
Dim CL As Range
For Each CL In ActiveSheet.Range("A2:A100" )
  Select Case CL
    Case "paris": CL.Offset(0, 1) = 6
    Case "lyon": CL.Offset(0, 1) = 5
    Case "brest": CL.Offset(0, 1) = 4
    'etc...
    Case Else
  End Select
Next
End Sub


Dans cet exemple, la macro donne un code en colonne B selon la ville trouvée en colonne A.  
C'est bien ce que tu veux ?
 
A+
Horatio

n°1315917
lala922
Posté le 01-03-2006 à 10:25:29  profilanswer
 

Lord Nelson a écrit :

Salut,
 
Je ne suis pas sûr d'avoir tout compris, mais si tu veux donner un code numérique à chaque ville, tu peux faire ceci :


Sub Code_Ville()
Dim CL As Range
For Each CL In ActiveSheet.Range("A2:A100" )
  Select Case CL
    Case "paris": CL.Offset(0, 1) = 6
    Case "lyon": CL.Offset(0, 1) = 5
    Case "brest": CL.Offset(0, 1) = 4
    'etc...
    Case Else
  End Select
Next
End Sub


Dans cet exemple, la macro donne un code en colonne B selon la ville trouvée en colonne A.  
C'est bien ce que tu veux ?
 
A+
Horatio


 
ouai sauf que je ne saurais pas à l'avance quel sera le nom des villes il faudrait que le pgme puisse reconnaitre les cases avec le même nom de ville? C'est possible??

n°1315964
galopin01
Posté le 01-03-2006 à 11:15:21  profilanswer
 

bonjour,
ça serait bien que tu fasses un effort pour expliquer ton problème.  
Un problème bien posé est un problème à moitié résolu.
Et si en plus il y a un petit classeur joint alors là c'est le top.
Un problème vaguement posé à peu de chance d'obtenir une solution.
Relis-toi  :heink:  et met toi un peu à notre place...  :pfff:  
 
Sinon j'ai une commande qui fait PARIS-LYON en 2h30 environ :  
=TGV(SNCF)
 
A+


---------------
roger
n°1315991
lala922
Posté le 01-03-2006 à 11:45:54  profilanswer
 

mais tu sais galopin01 si tu comprends pas tu reponds et basta!!!

n°1315992
lala922
Posté le 01-03-2006 à 11:46:26  profilanswer
 

mais tu sais galopin01 si tu comprends pas tu reponds pas et basta!!!

n°1316004
Lord Nelso​n
Posté le 01-03-2006 à 11:56:04  profilanswer
 

Salut Galopin et Lala,
 
D'accord avec toi Galopin, il faut que Lala fasse un effort d'explication :
 
Veux-tu compter tous les "paris" ou bien leur affecter un code ?
 
A+
Horatio

n°1316081
lala922
Posté le 01-03-2006 à 13:13:56  profilanswer
 

Salut,
Bon alors désolé d'être aussi peu clair jvais essayer d'être plus clair!
En fait je voudrais que mon programme puisse reconnaitre toute les cellules contenant le même mot jai pris paris, lyon... pour exemple mais les utilisateurs du programme pourront entrer le nom qu'ils veulent pour caractériser une cellule, le but ce serait que mon pgme puisse selectionner toutes les cellules contenant le même mot et ce quelque soit les mots utilisés.En gros il faut que mon pgme puisse reconnaitre tous les cellules contenant les mêmes caractères.
Est ce possible?
Merci! :)  

n°1316156
galopin01
Posté le 01-03-2006 à 14:02:10  profilanswer
 

bonjour,
tu peux partir de là :

Code :
  1. Sub test()
  2. Dim o, Tablo As New Collection, R$, S$, Z$
  3. Z = InputBox("Entrez la chaine de recherche" )
  4. For Each o In Selection
  5. S = o.Value
  6. R = o.Address
  7. If InStr(1, S, Z) > 0 Then Tablo.Add R
  8. Next
  9. For i = 1 To Tablo.Count
  10. MsgBox Tablo(i)
  11. MsgBox Range(Tablo(i)).Offset(0, 1)
  12. Next
  13. End Sub

Après faut voir...
Faire une sélection d'après des Address en Array, ç'est sans doute possible mais c'est plus cher !
A+


---------------
roger
n°1316163
Lord Nelso​n
Posté le 01-03-2006 à 14:05:46  profilanswer
 

Alors voici une procédure qui te permettra de lister les mots uniques dans ta liste :
 


Sub Liste_Villes()
Dim CL As Range
Dim Temp As String, I As Long
I = 2
For Each CL In ActiveSheet.Range("A2:A100" )
  If CL = "" Then Exit For
  If InStr(UCase(Temp), UCase(CL)) = 0 Then
    Temp = Temp & "@" & CL
  End If
Next
Villes = Split(Temp, "@" )
For I = 1 To UBound(Villes)
  ActiveSheet.Cells(I + 1, 2) = Villes(I)
Next
End Sub


 
Dans cet exemple la liste "Villes" est un tableau qui contient tous les noms des villes sans doublons. Cette liste apparaît en colonne B mais tu peux également t'en servir pour créer une liste déroulante.
 
A+
Horatio
 

mood
Publicité
Posté le 01-03-2006 à 14:05:46  profilanswer
 

n°1316189
lala922
Posté le 01-03-2006 à 14:40:06  profilanswer
 

ok je vais essayer, merci beaucoup  
 ;)

n°1316796
ladislas26​09
Posté le 02-03-2006 à 11:14:06  profilanswer
 

Salut,  
 
voici ce que je te propose.
 
On va placer les valeurs dans un tableau à deux dimensions (Ville, somme des valeurs)
ensuite, on colle le tableau dans une feuille.
 
Ca donne ça :
 
Sub Liste_Villes()
Dim CL As Range
Dim mytab()
Dim i As Integer
Dim fin As Integer
Dim found As Boolean  'variable de control des entrées du tableau
ReDim Preserve mytab(1 To 2, 1 To 1) ' tableau a 2 dimension ( ville, somme )
Feuil4.Activate
fin = Range("a65536" ).End(xlUp).Row  'dernière ligne utilisée
 
For Each CL In ActiveSheet.Range("A1:A" & fin) ' pour chaque cellule
    For j = 1 To UBound(mytab, 2)   'pour chaque entrée du tableau (villes)
        found = False ' on mets faux pour dire que CL n'est pas dans le tableau
        If mytab(1, j) = CL.Value Then ' si on trouve CL dans le tableau
            mytab(2, j) = mytab(2, j) + CL.Offset(0, 1).Value ' on rajoute la valeur à celle existante
            found = True 'on dit qu'on a trouver
            Exit For 'on sort de la boucle
        End If
    Next
    If Not found Then 'si on a pas trouver CL dans le tableau
    i = i + 1   'on incrémente le conteur de ville
    ReDim Preserve mytab(1 To 2, 1 To i) 'on rajoute un ligne au tableau
    mytab(1, i) = CL.Value  ' on colle le nom de la ville dans la première colonne
    mytab(2, i) = CL.Offset(0, 1).Value ' et la valeur correspondante dans la deuxième
    End If
Next ' on passe à la ligne suivante
Sheets("Feuil1" ).Activate
Sheets("Feuil1" ).Range("a1:b" & i) = Application.WorksheetFunction.Transpose(mytab) ' on colle Mytab dans la feuille Feuil1
Sheets("Feuil1" ).Range("a1:b" & i).Sort Key1:=Range("A1" ), Order1:=xlAscending ' on tri notre tableau
End Sub
 
 
Voilà, à toi de changer les noms de feuille pour que ça tourne chez toi.
 
+++++


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

  petite question pour programmer sous VB

 

Sujets relatifs
Simple question PHP (Variable)Programmer une Eeprom
Question sur front page 2003Programmer un drivers / ISA legacy sur Asus K8N
Question DreamweaverComment avez-vous commencer de programmer en C ?
plusieurs question (je debute)[ java ] comment créé un fichier + d'autes question dans le futur..
Petite erreur d'exeptionquestion sur 09 et 08
Plus de sujets relatifs à : petite question pour programmer sous VB


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