[VBA] Ranger des données de gauche à droite avec vérification

Résolu/Fermé
thesentry Messages postés 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 - Modifié par pijaku le 22/01/2014 à 12:12
thesentry Messages postés 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 - 23 janv. 2014 à 09:40
Bonjour,

J'ai besoin de ranger des données saisies sur un UF par un utilisateur dans une feuille Excel.

A savoir que lors d'une session, une seule ligne est remplie (et donc plusieurs colonnes).

La zone de saisie commence à partir de la cellule D1 et doit s'étendre jusqu'à Z1.

Il me faut une commande qui me permette de vérifier sur la ligne 1 les cellules de gauche à droite. De cette manière, je pourrai remplir la première cellule à droite de la dernière cellule remplie.

Alors je pense à une chose dans ce style :

Dim X as Variant

If Range("D1").Value = "" Then
    Range("D1").Value = X
    Else
    Sheets("Feuil1").Range("Z1").End(xlUp)(2).Value = X
End If


Mais ça c'est un code dont je me suis servi pour ranger dans une même colonne.

Le End(xlUp) ne fonctionnera pas dans mon cas présent.

Par quoi dois-je remplacer ?

Merci

TS

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
22 janv. 2014 à 12:09
Bonjour,

Essaie ceci :
Dim X As Variant
If Range("D1").Value = "" Then
    Range("D1").Value = X
Else
    Sheets("Feuil1").Range("Z1").End(xlToLeft).Offset(0, 1).Value = X
End If


Attention toutefois à ne pas tout déclarer as variant
1
thesentry Messages postés 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
23 janv. 2014 à 08:48
Bonjour,

Merci ça a marché nickel. Dernier soucis, je voudrais pouvoir enregistrer sur ma feuille donc la "valeur texte" de ma checkbox... comment faire ?

J'ai ça :

X = ""
If Conclusion.CheckBox1.Value = True Then
X = Conclusion.CheckBox1.Value
Sheets("Feuil1").Range("Z1").End(xlToLeft).Offset(0, 1).Value = X
End If

Mais ça me sort VRAI ou FAUX ce qui est logique d'ailleurs...
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
23 janv. 2014 à 08:51
Bonjour,

Peut être voir du côté de la propriété Caption au lieu de Value...
0
thesentry Messages postés 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
23 janv. 2014 à 09:40
Ah oui ! Exact ! Je débute en VBA et je dois développer un mini logiciel en VBA pour ma boite. J'apprends donc sur le tas.

Merci :-)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
22 janv. 2014 à 12:15
0
thesentry Messages postés 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
23 janv. 2014 à 08:49
Bonjour,

Je le mets en Favoris ;o)

Merci
0