Dim ????

Bonsoir, je viens à vous car j'ai un soucis avec vba, je souhaite copier en colonne A (1 to 50) des valeurs (chiffres) qui viennent d'un autre logiciel d'émulation lié avec excel.

Mon soucis c'est que je ne sais pas si c'est dim a ou dim i, enfin je comprends pas...

Merci à vous.

Bonjour DJ FA,

Pas trop compris le problème. Le "a" ou le "i" que tu déclares est un nom de variable. Tu peux donc mettre presque n'importe quoi. Comme : Dim azerty ou encore Dim DJFA...

Si ça répond pas à ta question, essaie de joindre un bout de fichier pour mieux cerner le problème.

En pm c'est possible ?

Tu peux pas mettre des valeurs bidons plutôt ?

Voici une partie de mon code, je souhaite que les valeurs trouvées soient copiées sur la colonne A les une en dessous des autres. Ca bloque à la deuxième ligne, Merci.

Dim a As Integer
For a = 1 To 50
Cells(a, 1).Value = 
Cells(b, 1).Value =
Cells(c, 1).Value =
Cells(d, 1).Value =
Cells(e, 1).Value = 
Cells(f, 1).value =

Et comme ça ça marche ?

Dim a As Integer, b%, c%, d%, e%, f%
For a = 1 To 50
    Cells(a, 1).Value =
Next a
For b = 51 To 100
    Cells(b, 1).Value =
Next b
For c = 101 To 150
    Cells(c, 1).Value =
Next c
For d = 151 To 200
    Cells(d, 1).Value =
Next d
For e = 201 To 250
    Cells(e, 1).Value =
Next e
For f = 251 To 300
    Cells(f, 1).value =
Next f

Le "%" dans la déclaration des variables signifie Integer

Alors en fait je veux une valeur pour une cellule, et là ça copie la même valeur 50 fois. désolé mon code n'est pas très bon.

-- Jeu Mai 19, 2011 12:06 am --

alors j'ai fais ça et cela fonctionne :

For a = 1 To 1,  For b = 2 To 2 etc etc...

y a t-il un moyen d'avoir un code plus simple une sorte de boucle ?

Re,

Les variables a, b, c, d, e, f sont-elles obligatoires ? Si non, remplace-les par 1, 2, 3, 4, 5, 6.

J'ai fais avec ce que tu m'avais proposé (merci au passage) et ma modification et ça fonctionne, par contre j'ai un autre petit soucis.

J'ai ça : Dim x As Integer

For x = 3 To 27

Mais quand la colonne est remplie de 3 à 10 par exemple, ma macro ne s'arrête pas à 10 elle continue jusqu'à 27 ! Comment éviter ceci ? merci bien.

Essaie avec :

Dim x As Integer
For x = 3 To 10

Oui merci, mais le soucis c'est que c'est aléatoire !

Ok j'avais pas compris.

Et avec ceci ? :

Dim x As Integer
For i = 3 To Range("A65000").End(xlUp).Row

Ce code détecte automatiquement la dernière ligne de la colonne A (il faut que ça soit supérieur à 3).

Dim x As Integer
For i = 3 To Range("A27").End(xlUp).Row

Et ça , ça ira ?

Ça peut marcher mais si ton tableau a un nombre de lignes supérieur ou égal à 27 ça ne marchera pas. J'ai pris 65000 pour prendre large. A toi de tester

Bonjour

DJ FA,

Dim x As Integer
For i = 3 To Range("A27").End(xlUp).Row

Cela devrait être Dim i et pas Dim x mais pas besoin de déclarer en Integer si tu vas jusque 27, déclare en Byte.

Pour ma part je ferai ceci

Dim i As long
For i = 3 To Range("A" & rows.count).End(xlUp).Row

Amicalement

je vais essayer, merci.

re

DJ FA, tu en es où là ??

Si ok merci de cloturer le fil

AMicalement

Oui ça fonctionne très bien, merci à vous.

Rechercher des sujets similaires à "dim"