Enregistrer le numéro de colonne dans une variable

Juju@68

Nouveau membre
Bonsoir

Je cherche à stocker le numéro d'une colonne dans une variable mais je n'y arrive pas.
Je déclare donc une variable "A"
Dim A as Integer

Puis je stocke le numéro de ma cellule active dans la variable A

ActiveCell.column=A

Ca ne fonctionne pas. Je comprends pas pourquoi. Quelqu'un peut-il me venir en aide?

Merci d'avance

 

marsien

Grand Maître
Je ne connais pas trop le langage VBS, mais si ça fonctionne "normalement", comme les autres langages, c'est plutôt :
Code:
A=ActiveCell.column
 

Juju@68

Nouveau membre
Merci beaucoup!
Je crois que ça marche. Pourtant j'ai cherché...
Mais j'ai pas pensé à l'écrire dans l'autre sens.
J'étais tellement sûr que ça revenait au même.
 

marsien

Grand Maître
;)

Et non, en programmation, le sens d'écriture à un... sens. Ce qui se trouve à gauche du "=" prend la valeur de ce qui se trouve à droite du "=" :)

C'est logique, si tu y réfléchis un peu. Ce serait un beau bordel autrement ; par exemple :
soit une variable A qui vaut 3
soit une variable B qui vaut 7
si tu écris A = B et qu'il n'y a pas de sens d'écriture, est-ce que A vaut 7 maintenant ? Est-ce que B vaut 3 ? Lequel change de valeur ? Les 2 ? aucun ? Impossible de trancher et don c pour le programme de s'exécuter.
Si au contraire, on dit que la variable de gauche prend la valeur de la variable de B, alors là c'est limpide : B ne change pas et vaut toujours 7, alors que A prend la valeur de B et vaut donc maintenant 7.
Et du coup, si on écrit B = A, alors là A vaut toujours 3, mais B vaut maintenant 3 aussi.
Dans ce 2 derniers exemples, il n'y a plus aucun doute sur l'attribution des valeurs, le programme sait comment traiter l'égalité et peut s'exécuter !
 

Juju@68

Nouveau membre
Ca c'est de la démonstration par a+b.

Merci d'avoir pris le temps d'expliquer!

 

zeb

Modérateur
L'opérateur d'affectation, en VB, mais aussi C, C++, Java, est le signe égal. En Pascal, on utilise les signes deux-points-égal, et en algo (pseudo-langage d'étude), on rencontre souvent les signes inférieur-tiret. Il y a forcément un sens, comme la démonstration de Marsien le prouve.
Code:
// VB, C, C++, Java
i = 3

// Pascal
i := 3

// Algo
i <- 3
L'algo est très clair, non ?

L'opérateur de comparaison, en VB, est aussi le signe égal :pt1cable: En Pascal, algo, on rencontre aussi le signe égal. Mais là, pas de problème, on ne l'utilisait pas pour l'affectation. En C, C++, Java, on utilise deux fois le signe égal.
Code:
// VB
If i = 3 Then ...

// C, C++, Java
if ( i == 3 ) ...

// Pascal
IF i = 3 THEN ...

// Algo
SI i = 3 ALORS ...
Ici, en revanche, il n'y a pas de sens. Il s'agit de comparaison au sens mathématique.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 136
Messages
6 718 117
Membres
1 586 397
Dernier membre
Chachabidou
Partager cette page
Haut