Macro Tableau avec diagonale différente
doggjamel
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je viens solliciter votre aide.
Je dois créer une macro tableau avec sur la diagonale un mot
J'ai 4 cellules:
A1 : 4 --> qui représente le nombre de lignes
B1 : 4 --> qui représente le nombre de colonnes
C1 : 4 --> qui représente le "mot"
D1 : 4 --> endroit où commence le tableau
Le tableau doit être rempli de 1 à 12 sauf dans la diagonale oû là il doit y avoir le mot en question.
lien du fichier : https://www.cjoint.com/c/CCxoDDJvFgN
JE dois absolument créer cela à l'aide d'une macro.
MErci d'anvace pour votre aide.
je viens solliciter votre aide.
Je dois créer une macro tableau avec sur la diagonale un mot
J'ai 4 cellules:
A1 : 4 --> qui représente le nombre de lignes
B1 : 4 --> qui représente le nombre de colonnes
C1 : 4 --> qui représente le "mot"
D1 : 4 --> endroit où commence le tableau
Le tableau doit être rempli de 1 à 12 sauf dans la diagonale oû là il doit y avoir le mot en question.
lien du fichier : https://www.cjoint.com/c/CCxoDDJvFgN
JE dois absolument créer cela à l'aide d'une macro.
MErci d'anvace pour votre aide.
A voir également:
- Macro Tableau avec diagonale différente
- Tableau word - Guide
- Tableau ascii - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
J'ai commencé la macro avec le cour que j'ai reçu
mais je n'arrive pas à remplir le tableau
pouvez vous m'aider
voici le code que j'ai écrit:
Sub Macro_Partiel()
'
' Macro1 Macro
'
Dim ligne As String
Dim colonne As String
Dim mot As String
Dim debut As String
ligne = Range("A1") 'Nombre de lignes
colonne = Range("B1") 'Nombre de colonnes
mot = Range("C1") 'Mot dans la diagonale
debut = Range("D1") 'Point de départ du tableau
Range("D1").Activate
For i = 1 To A1 * B1
If i = (ligne * colonne) / ligne Then
ActiveCell.Offset(0, B1).Range("A1").Select
End If
Next
End Sub
Bon début.
Sauf que typer ligne et colonne en As Long serait mieux vu que ce sont des nombres entiers.
Et vu que c'est le nombre appelle-les plutôt nbLigne et nbColonne
Essaie plutôt en faisant 2 boucles imbriquées, et à l'intérieur teste si ligne=colonne.
eric
PS: pour mettre 5 dans la cellule B3 par exemple :
cells(3,"B")=5
ou
cells(3,2)=5 ' B= colonne 2
Sub Macro_Partiel()
'
' Macro1 Macro
'
Dim nbLigne As Long
Dim nbColonne As Long
Dim message As String
Dim debut As String
nbLigne = Range("A1").Value 'Nombre de lignes
nbColonne = Range("B1").Value 'Nombre de colonnes
message = Range("C1").Value 'Mot dans la diagonale
debut = Range("D1").Value 'Point de départ du tableau
debut = Range(debut).Activate
ActiveCell.Value = message
For nbLigne = 1 To nbLigne
For nbColonne = 1 To nbColonne
If nbLigne = nbColonne Then
ActiveCell.Value = message
Else
nbLigne = nbLigne + 1
nbColonne = nbColonne + 1
End If
Next nbColonne
Next nbLigne
End Sub
Le soucis c'est que lorsque je lance la macro, il ne se passe rien
For Lig = 1 To nbLigne
nbLigne = nbLigne + 1
nbColonne = nbColonne + 1
Là tu exagères, reprend ton cours sur le For et regarde ce que fait le Next
ActiveCell.Value = message : tu mets tout dans la même cellule, la cellule active.
Tu n'as pas vu mon PS ?
PS: pour mettre 5 dans la cellule B3 par exemple :
cells(3,"B")=5
ou
cells(3,2)=5 ' B= colonne 2
donc cells(lig + y,col + x)= ...
Avec x et y qui vont bien pour placer le tableau là où tu veux.
Et n'oublie pas de tester au milieu des boucles si lig=col. Si c'est vrai c'est que tu es sur la diagonale, et tu as un traitement différent selon le cas...
eric