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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Excel] Bataille navalle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA Excel] Bataille navalle

n°1910720
kumasan
Posté le 31-07-2009 à 16:11:59  profilanswer
 

Bonjour,  
 
En gros mon problème se ramène à un jeu de bataille navale.
Dans un classeur, j'ai un tableau en plein milieu de ma page avec les colonnes A, B, C.. et des lignes 1, 2, 3...
 
Dans un autre classeur j'ai une liste de coordonnées : A1, C2, D5...
Mais cette liste peut changer.
 
Et j'aimerai cocher ces cases là dans mon tableau.
 
Merci d'avance.

mood
Publicité
Posté le 31-07-2009 à 16:11:59  profilanswer
 

n°1910755
jagstang
Pa Capona ಠ_ಠ
Posté le 31-07-2009 à 17:03:32  profilanswer
 

mets un X dedans


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1910764
Turkleton
I don't quite understand you
Posté le 31-07-2009 à 17:13:47  profilanswer
 

jagstang a écrit :

mets un X dedans


Rhoo putain, je cherchais un truc à dire mais j'ai bien fait de m'abstenir, j'aurais pas fait mieux que ça !


---------------
If you think it could look good, then I guess it should
n°1910767
jagstang
Pa Capona ಠ_ಠ
Posté le 31-07-2009 à 17:16:57  profilanswer
 

Turkleton a écrit :


Rhoo putain, je cherchais un truc à dire mais j'ai bien fait de m'abstenir, j'aurais pas fait mieux que ça !


:D
 
Ben disons que dans un premier temps c'est ce qui me vient à l'esprit. Après pour peaufiner y'a toujours moyen de s'amuser


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1910779
Turkleton
I don't quite understand you
Posté le 31-07-2009 à 17:33:24  profilanswer
 

jagstang a écrit :

Après pour peaufiner y'a toujours moyen de s'amuser


Maiwai, déjà, on peut dés-optimiser un peu ton code là. Moi je ferais plus un truc du genre "Cells(col, lig) = Chr(88)".
Mais ça n'engage que moi [:julm3]


---------------
If you think it could look good, then I guess it should
n°1911088
kumasan
Posté le 03-08-2009 à 09:38:15  profilanswer
 

Merci jagstang et turkleton... je n'y avait pas pensé!!
 
Sinon je n'ai peut-être pas été assez clair dans l'explication de mon problème mais dans ce cas là, je pense que ya un autre moyen de me le dire sans passer par de vieilles blagues plutôt médiocres...
 
Merci d'avance

n°1911134
Turkleton
I don't quite understand you
Posté le 03-08-2009 à 11:17:16  profilanswer
 

kumasan a écrit :

Merci jagstang et turkleton... je n'y avait pas pensé!!
 
Sinon je n'ai peut-être pas été assez clair dans l'explication de mon problème mais dans ce cas là, je pense que ya un autre moyen de me le dire sans passer par de vieilles blagues plutôt médiocres...


L'explication de l'énoncé était plutôt claire, mais l'explication de ton problème, je cherche encore.
 
Soit c'est

kumasan a écrit :

Et j'aimerai cocher ces cases là dans mon tableau.

alors nos réponses sont valides, soit c'est

kumasan a écrit :

En gros mon problème se ramène à un jeu de bataille navale.

et ça ressemble furieusement à une demande pour faire ton exercice à ta place, et alors nos réponses sont valides également, vu que ça ne mérite pas grand chose d'autre... [:hephaestos]  
 
Si tu as réellement un problème dans l'exécution de ton code, ou même dans sa conception, nous serons ravis de t'aider, pour peu que tu nous dises ce qui ne fonctionne pas.


---------------
If you think it could look good, then I guess it should
n°1911156
kumasan
Posté le 03-08-2009 à 11:35:57  profilanswer
 

Ok...au moins cette fois je comprend ce qui n'allait pas.
 
Dans un fichier j'ai deux colonnes :  
- une avec la colonne de la case à cocher
- l'autre avec la ligne
 
j'ai réussi à récupérer ces coordonnées dans des vecteurs  :

Code :
  1. For i = 1 To 1
  2.     ReDim Preserve colonne(i)
  3.     ReDim Preserve ligne(i)
  4.     colonne(i) = Range("A1" ).Offset(i - 1)
  5.     ligne(i) = Range("B1" ).Offset(i - 1)
  6. Next i


 
ensuite dans mon autre fichier où je dois cocher mes cases, j'arrive à selectionner la colonne entière avec le même nom de colonne et pareil avec la ligne :  
 

Code :
  1. With Range("b6:dr24" )
  2.       Set c = .Find(colonne(i), LookIn:=xlValues)
  3.       Set l = .Find(ligne(i), LookIn:=xlValues)
  4.       c.EntireColumn.Select
  5.       l.EntireRow.Select
  6. end with


 
et le problème c'est que j'aimerai trouver l'intersection de ces deux plages et mettre une croix dedans... et ce pour chaque coordonnées.
J'ai pensé à Intersect mais j'obtiens un message d'erreur.
 
Merci

n°1911159
kumasan
Posté le 03-08-2009 à 11:37:28  profilanswer
 

j'avais essayé :  
 
Intersect(c.EntireColumn.Select, l.EntireRow.Select)


Message édité par kumasan le 03-08-2009 à 11:37:53
n°1911177
Turkleton
I don't quite understand you
Posté le 03-08-2009 à 11:49:32  profilanswer
 

Cells(l.Row, c.Column).Select ? Je peux pas tester mais ça doit être un truc dans le style.


Message édité par Turkleton le 03-08-2009 à 11:55:17

---------------
If you think it could look good, then I guess it should
mood
Publicité
Posté le 03-08-2009 à 11:49:32  profilanswer
 

n°1911184
kumasan
Posté le 03-08-2009 à 11:56:08  profilanswer
 

Encore une fois, c'était tout bête..  
Ca a l'air de marcher.
Merci

Message cité 1 fois
Message édité par kumasan le 03-08-2009 à 11:57:55
n°1911185
Turkleton
I don't quite understand you
Posté le 03-08-2009 à 11:57:11  profilanswer
 

kumasan a écrit :

Il me dit "incompatibilité de type"...


Tes "c" et "l" sont déclarés comment ? Ce sont des objets de type Range ?
 
EDIT : un petit test s'impose  

Code :
  1. If Not c Is Nothing And Not l Is Nothing Then
  2.      ...
  3.    Else
  4.      MsgBox "Valeur non trouvée"
  5.      End If


ton incompatibilité de type vient peut-être du fait que c ou l sont vides.


Message édité par Turkleton le 03-08-2009 à 12:01:12

---------------
If you think it could look good, then I guess it should

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

  [VBA Excel] Bataille navalle

 

Sujets relatifs
Impression de feuille excel sous conditionsConvertir le résultat d'une requête SQL en fichier excel
excel...comment faire !Catcher une alerte dans une macro excel
[VBA] Problème avec SeriesCollection.Values et Union(Range)Macro Excel : tableau dynamique
[EXCEL] Liste clients -> recherche géographiqueBouton Excel associé à une macro
[VBA][Excel][Word] Redimensionner Tableau 
Plus de sujets relatifs à : [VBA Excel] Bataille navalle


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