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

VBA - Problème de selection de la première colonne vide

TgR

XLDnaute Junior
Bonjour,

je suis confronté à un problème plutôt basique mais dont je ne trouve pas la solution pour le moment. Je souhaite tout simplement sélectionner la première colonne vide de ma feuille excel afin d'y mettre des informations. Bien que reprenant un code déjà utilisé 2 lignes plus hautes (avec la variable celluleDate), ça ne marche pas !


Le voici

Code:
With Sheets("Indicateurs")
   Set celluleDate = .Range("A2").End(xlToRight).Offset(0, 1).Columns
   celluleDate = Date
   Set cellDepart = .Range("A3")
   For i = 0 To nbCases
      cellDepart.Offset(i, 0).Value = tableauConso(i).partNumber
      cellDepart.Offset(i, 1).Value = tableauConso(i).designation
      cellDepart.End(xlToRight).Offset(i, 1).Columns = tableauConso(i).conso
   Next i
End With


La ligne qui ne va pas est la suivante :

Code:
cellDepart.End(xlToRight).Offset(i, 1).Columns = tableauConso(i).conso

En fait ce code va me mettre les informations correctement à la première passe donc :

A3 - B3 - C3

mais dès le deuxime for, la boucle devient :

A4 - B4 - D4

Alors que la cellule C4 est bien vide.

Une idée ?

Merci
 

TgR

XLDnaute Junior
Re : VBA - Problème de selection de la première colonne vide

Je pensais que c'était parce que ma cellule était référencée en A3 au départ mais non, puisque je mets offset(i, 1). Donc à chaque fois je suis sensé descendre d'une ligne..
 

Yakou

XLDnaute Nouveau
Re : VBA - Problème de selection de la première colonne vide

Bonjour,

si tu écris en "A3" il te faudrait les titres en "A2" car cette fonction compte "les colones non vide" qui se suivent. (jusqu'à la 1ère celulle vide rencontré).

cellDepart.End(xlToRight).Offset(ligne, 0).Columns



Avec cette syntaxe tu définis "A3" en point de référence sur le calcul d'offset.

Set cellDepart = .Range("A3")


sur la 1ère écriture:

Tu as 2 champs écrit au moment de cette syntaxe ("A3" et "B3")
'cellDepart.End(xlToRight).Offset(ligne, 0).Columns

il compte 2 colones et t'ajoute le résultat en "C3".


sur la 2nd écriture:

Tu as écris de "A3" jusqu'à "C3"
Tu as donc 3 champs colone non vide.

Il va compter 3 colones sur cette syntaxe (vu qu'il se base sur ton point de référence "cellDepart en A3"

cellDepart.End(xlToRight).Offset(ligne, 0).Columns

Il va donc t'écrire le résultat en "D4".
La suite de tes écritures seront toutes en "D" & ligne


si tu souhaitais écrire en ligne 3, tu pouvais utiliser simplement:
cellDepart.Offset(ligne, 2).Value = <resultat>


J'ai testé sur une feuille le code ci-dessous pour comprendre ta demande.
en mettant des titres dans les cellules "A2" jusqu'en "E2"

----------------

 
Dernière édition:

TgR

XLDnaute Junior
Re : VBA - Problème de selection de la première colonne vide

Salut,

En fait j'ai besoin qu'à chaque lancement de la macro, les nouvelles données s'insèrent dans la première colonne vide, tout à droite. J'ai trouvé ceci qui marche très bien :

cellDepart.Offset(i).End(xlToRight).Offset(, 1) = tableauConso(i).conso

Merci de ton aide
 

Yakou

XLDnaute Nouveau
Re : VBA - Problème de selection de la première colonne vide

si tes colones reste sous le même model
le code devrait donner ça.






si tes colones bouge a selon les lignes.
le code devrait donner ça.


 

Discussions similaires

Réponses
0
Affichages
157
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…