Debutant VB: un probleme de ligne a copier!!! - VB/VBA/VBS - Programmation
Marsh Posté le 13-08-2009 à 08:14:18
Range("i,Ki:ABi" )
Ca ne veut rien dire ça. Si le i est une variable il faut concaténer tes valeurs (par exemple si tu veux "A5" et que i = 5 alors tu écris "A" & i)
Marsh Posté le 13-08-2009 à 14:26:34
ok!!
Merci, est ce que quelqu'un peut juste m'expliquer rapidement la syntaxe des ranges, rows... Parce que je comprend pas ce qu'est &?
MErci
Marsh Posté le 13-08-2009 à 14:47:09
tu sélectionnes ta fonction et F1 dans VBA pour l'aide de la fonction.
Le & c'est pour concaténer une chaine de caractère car si t'écris "ABi" il est pas censé savoir que i c'est une variable.
Mais aucun lien direct entre range et &.
Marsh Posté le 13-08-2009 à 14:55:42
& est simplement le mot cle de concaténation en VBA (et en VBS d'ailleurs )
Pour ceux qui est de la synthaxe, un peu de google aurait pu te répondre
Sauf erreur de ma part en gros tu as :
- Cells (i, j) qui permet de s'adresser à une cellule
Tu lui donnes comme arguments les nombres qui désigne la cellule visée
- Range(s) qui permet de s'adresser à une selection de cellule
L'argument est cette fois-ci une chaîne de caratère. Du moment que la chaîne est valide tu peux avoir plein de résultat
- ROW(), COLULN() / LIGNE(), COLONNE() qui sont des fonction prédéfini d'Excel qui te renvoye la ligne ou la colonne dans lauelle se situe le curseur.
L'inconvénient de ces fonctions c'est qu'elles dépendent de la langue utilisée sur Excel. Ainsi dans mon excel en français row() ne marche pas, alors que ligne() marche...
Edit grilled, faut que j'arrète de faire 15 trucs à la fois tu avais répondu depuis déjà 8 min
Marsh Posté le 12-08-2009 à 15:42:29
Bonjour a tous,
Je suis nouveau dans le monde du VBA et pour ainsi dire je n'y connais rien...
Je cherche a écrire un code pour réaliser ceci:
J'ai deux plages de données sur une même feuille de calcul. Chaque ligne de ma plage de données 1 (qui va de la ligne 1 a 2053) a une ligne qui lui correspond dans le plage de données 2 (lignes 2069 a 4441). Le point commun entre ces ligne est un numéro de client. Je cherche donc a coller a la suite de la ligne i de la plage 1 la ligne j de la plage 2 ayant le même numéro client. (je ne sais pas si c'est clair mais je peux préciser si vous voulez)
Voici le code que j'ai tape et qui ne marche pas:
Sub SupprimerLignes()
Const LigneDebut = 1 ' entre 1 et 65536 pour Excel 2003
Const LigneFin = 2053 ' entre 1 et 65536 pour Excel 2003
Const LigneDebut2 = 2069
Const LigneFin2 = 4441
Const ColonneEquiptype = 4 ' entre 1 et 255 pour Excel 2003
Const ColonneEquitype2 = 1
For i = LigneFin To LigneDebut Step -1
j = 4441
While Cells(i, ColonneEquitype) <> Cells(j, ColonneEquitype2)
j = j - 1
Wend: Range("j:j" ).Copy
Range("i,Ki:ABi" ).Paste
Next i
End Sub
Pouvez vous m'aider svp??
Merci beaucoup par avance
Message édité par aqua31 le 12-08-2009 à 16:02:52