aide écriture fonction vba

  • Initiateur de la discussion Initiateur de la discussion nul-en-vba
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nul-en-vba

Guest
Bonjour, je dois écrire une fonction sur VBA et je suis vraiment nul, donc je remercie celui qui pourra m’aider.
Voila, à partir d’une matrice carrée binaire (que avec des 1 et des 0, comme la matrice identité), je dois écrire une fonction qui me donne sa matrice d’incidence (seulement pour les 1), c’est-à-dire avec une première colonne qui me donne le numéro de la ligne et une deuxième colonne qui me donne le numéro de la colonne des cases où il y a les 1.
Ensuite, j’ai une deuxième fonction à écrire, je dois effectuer un calcul matriciel entre 2 matrices d’incidence quelconques.
A partir de 2 matrice d’incidence quelconques que je multiplie par exemple (ou que j’additionne, ou que je transpose…), je dois obtenir une troisième matrice d’incidence.
Pour cette deuxième fonction, j’ai une contrainte, je ne dois repasser par des matrices carrées binaires.
Merci de bien vouloir m’aider.
 
Matrice carrée binaire d’origine :

0 1 0
0 0 1
1 0 1


Grâce à une fonction , tu la transforme en sa matrice d’incidence, cad les coordonnées des points (ici que des 1) :

Lignes colonnes
1 2
2 3
3 1
3 3


Mettons maintenant, tu veux transposer ta matrice, cad tu veux que tes lignes deviennent tes colonnes et vis et versa, je te montre :

Matrice carrée binaire d’origine transposée :

0 0 1
1 0 0
0 1 1

Sa matrice d’incidence transposée :
Lignes colonnes
1 3
2 1
3 2
3 3

Mais normalement tu ne dois pas repasser par les matrices carrées d’origine, je voulais juste te montrer ce que ça faisait.
En fait, tu dois créée une fonction qui passe de la matrice d’incidence à la matrice d’incidence transposée sans repassé par les matrices carrées binaires.

Tu peux aussi d’autres fonctions de calculs matriciels comme la multiplication ou l’addition de 2 matrices d’incidence quelconques qui te donne une 3ème matrice d’incidence, toujours sans repasser par les matrices carrées d’origine.










Function ind (nbcherch, nbcaseecr, nbabs, nbordo)
'nbcherch représente ce que tu cherche 1 ou 0
'nbabs représente le nombre d'abscisse (nombre de ligne que contient la matrice)
'nbordo les ordonnées (nombre de colonne que contient la matrice)
'tu les initialise avant le bout de code que je t'ai donné : Par exemple:
'nbcaseecr représente l'ordonnées de la case écrite dans la ligne 6
'ordonnée et abscisse représenter ligne et colonne



Dim nbabs As Integer
Dim nbordo As Integer
nbabs = 2
nbordo = 3

nbcherch = 1
nbcaseecr = 1
For i = 1 To nbabs
For j = 1 To nbordo
If Cells(i, j) = nbcherch Then
Cells(6, nbcaseecr) = i + 'et' + j
nbcaseecr = nbcaseecr + 1
End If
Next i
Next j

End Function





'Mais ce sont le nombre de colonne et de ligne, le calcul et le parcours de ces lignes se font au niveau du for:

For i = 1 To nbabs
For j = 1 To nbordo
Next
Next

'Cela permet le parcours de 1 à la valeur contenu dans nbabs, valeur consevé dans i et à l'intérieur de cette boucle parcours de 1 a nbordo avec valeur conservé dans j.


Cells (6, nbcaseecr) = i + 'et' + j
'Cette ligne écrit dans la ligne 6 a la colonne nbcaseecr variable qui s'incrément a chaque écriture (pour éviter de remplacer la données existantes)
voila j'ai essayé d'ecrire la fonction. si quelqu'un peut m'aider à la corriger et à la mettre en forme
 
function add(???)

dim i as integer
dim j as integer
for i=1 to 3
for j=1 to 3
cells(i+4,j)=cells(i,j)+cells(i,j+4)
next j
next i

End function

je cherche qq'un qui peut me dire quoi mettre comme argument dans cette fonction pour qu'elle marche!




Code:
function ind(???)

Dim nbabs As Integer
Dim nbordo As Integer
nbabs = 4
nbordo = 4
nbcherch = 1
nbcaseecr = 1
For i = 1 To nbabs
For j = 1 To nbordo
If Cells(i, j) = nbcherch Then
Cells(6, nbcaseecr) = i + 'et' + j
nbcaseecr = nbcaseecr + 1
End If
Next i
Next j

End Function


qoui mettre comme argument pour que cette fonction marche?
SVP c'est très urgent!!!!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

N
Réponses
6
Affichages
2 K
P
  • Question Question
Réponses
1
Affichages
3 K
Patrosso
P
R
Réponses
6
Affichages
3 K
Retour