Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Erreur de compil' Macro VBA

odubouexic

XLDnaute Nouveau
Bonjour,

Totalement debutante dans le domaine, je me lance... mais, qd j ai voulu tester ma courte macro, j ai une erreur de compilation... qq'un veut il bien m eclairer ???

merci,
A+

Ci-apres, le code que ja i tapé :

Sub Remplacer()
Range(a, j).Select
If activecells = 'Transfert AIT' Then
Set by = 'C400-1070I'
End If
End Sub
 

Hervé

XLDnaute Barbatruc
bonjour

Range(a, j).Select=a et j sont des variables non initialisées, deplus, il faut utiliser cells dans ces cas : cells(ligne,colonne)

If activecells = 'Transfert AIT' Then = activecell, sans s

Set by = 'C400-1070I'= set permet d'initialiser une variable à l'aide d'un objet (cellule, plage de cellule, dessins,...) mais pas du texte.

Sub Remplacer()
dim a as byte, j as byte
dim by as string
a=1
j=1

cells(a,j).select

if activecell='Transfert AIT' then
by='C400-1070I'
activecell=by
end if

End Sub

ce code remplace dans la cellule A1, 'Transfert AIT' par 'C400-1070I'

salut
 

odubouexic

XLDnaute Nouveau
Re,

en fait, je ne comprend pas tres bien ce que ce code là signifie :

dim a as byte, j as byte
dim by as string
a=1
j=1

quelle action effectue t il ?

car par mon code range (a,j).select je cherchais a selectionner la plage de cellule de A à J sans limitation de ligne... j ai bien compris pourquoi c'etait faux, mais, le code que tu me propose, j ai du mal a le comprendre...

ce qui me gene surtout sont les A=1 et J=1 comme l impression qu on selectionne deux cellules...

je me trompe ?
Merci ,
A+
Olivia
 

porcinet82

XLDnaute Barbatruc
Salut odubouexic, Hervé

Les lignes commencant par Dim permettent de déclarer tes variables et de leur donner un format. Donc dans le cas présent a et j sont des varaibles déclarés en Byte, c'est à dire qu'elle peuvent prendre une valeurs entre 0 et 255. By est déclarée en String, c'est à dire qu'il s'agit de chaine de caractère.
a=1 et j=1 permettent d'affecter la valeur 1 à a et j.

Comme l'a deja préciser Hervé, rarnge(a,j).select permet de sélectionner la cellule ligne 1 colonne 1, c'est à dire la cellule A1.

Pour sélectionner la plage de cellule de A à J sans limitation de ligne, soit tu sélectionne directement les colonnes avec un code du genre Columns('A:J').Select ou alors tu peux également utiliser un Range avec un code du genre Range('A1:J65536').Select.

Il y a bien d'autres possibilités de sélectionner cette plage. Peut etre qu'Hervé aura d'autres informations a t'apporter.

Dernière chose à propos de
ce qui me gene surtout sont les A=1 et J=1 comme l impression qu on selectionne deux cellules...
En fait pour sélectionner une cellule, il faut donner 2 coordonnées, un numéro de ligne et un numéro de colonne.
Exemple:
Range('A1').select
Cells(1,1).select


@+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…