La premiere cellule vide d'une collone VBA

gariRO

XLDnaute Nouveau
Bonjour tout le monde,

ça serais merveilleux si vous pouvais m'aidiez dans mon problème, que j'essaie de l'expliquer ci après:


Alors,Dans le tableau aller vers la première cellule vide d’une colonne donnée dans mon cas la colonne A
Après remplir les donnée (dans cette cellule) et calculer les colonnes B et C en fonction du contenu de la colonne A

J'ai arrivé à régler le premier problème mes je n'arrive pas à calculer B et C en fonction de A avant de passer à la prochaine cellule vide.

Mes remerciement anticipés

Merci.
 

gariRO

XLDnaute Nouveau
Re : La premiere cellule vide d'une collone VBA

Bonjour,
Merci bien pour votre réactivité

alors, pour la logique de calcul c'est simple par exemple B=A+1, C= A-2

J'aisaierais de vous créer un fichier exemple pour vous faciliter la tâche je vais vous le joindre plus tard.
 

Orodreth

XLDnaute Impliqué
Re : La premiere cellule vide d'une collone VBA

Re,

En VBA:
Code:
    Dim pcs_A as long
    Dim fin_A as long
    fin_A = Range("A65536").end(xlup).row
    for pcs_A = 1 to fin_A
        Range("B" & cstr(pcs_A)).value = Range("A" & cstr(pcs_A)).value + 1
        Range("C" & cstr(pcs_A)).value = Range("A" & cstr(pcs_A)).value - 2 
    next pcs_A

En formule:
- En B1: =A1+1
- En C1: =A1-2
Et tu déroules.

Solution par VBA OU par formule, comme tu veux.

Cordialement,
 

Gorfael

XLDnaute Barbatruc
Re : La premiere cellule vide d'une collone VBA

Salut Orodreth, gariRO et le forum
Le même code en version feignant :
Code:
Dim X As Long
For X = 1 To Cells(Rows.Count, "A").End(xlUp).Row
    Cells(X, "B") = Range("A" & X) + 1
    Cells(X, 3) = Range("A" & X) - 2
Next X
Avec les mêmes inconvénients (début ligne 1, traite toutes les cellules) dûs au manque d'information
A+
 

gariRO

XLDnaute Nouveau
Re : La premiere cellule vide d'une collone VBA

Bonjour les amis,

je reviens sur la même discussion après tout ce temps parce ce que j'ai pas bien su vous expliquer mon soucis dont j’essayerai de le ré-expliquer pas par pas:

alors tous d'abord je voudrai que vous sachiez que mon classeur contient un très grand nombre de lignes;

alors je cherche comment déclencher une procédure de calcule lors de changement du contenue d'une cellule d'une colonne donnée( généralement la cellule est vide et on la remplis)

le calcule se fait en fonction du contenue taper et que pour la ligne en cours

Merci d'avance et je m'excuse pour le retard
 

Orodreth

XLDnaute Impliqué
Re : La premiere cellule vide d'une collone VBA

Bonjour,

Essaye le code ci-dessous, à placer dans le module de ta feuille:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        If IsNumeric(Target.Value) Then
            Cells(Target.Row, 2).Value = Target.Value + 1
            Cells(Target.Row, 3).Value = Target.Value - 2
        End If
    End If
End Sub

Le code teste si la colonne de la cellule modifiée est la colonne A.
Puis teste si la valeur est numérique.
Si oui dans les deux cas, en colonne B => A + 1, en colonne C => A - 2

Cordialement,
 

Staple1600

XLDnaute Barbatruc
Re : La premiere cellule vide d'une collone VBA

Bonjour à tous

Pour le plaisir de croiser Odoreth et pour honorer mes endives ;)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
    If .Column = 1 Then
        If IsNumeric(.Value) Then
            Cells(.Row, 2).Value = .Value + 1
            Cells(.Row, 3).Value = .Value - 2
        End If
    End If
End With
End Sub
et pour signaler que si on fait une recopie vers le bas en colonne A, le calcul ne se fait sur la première cellule uniquement.
 
Dernière édition:

Orodreth

XLDnaute Impliqué
Re : La premiere cellule vide d'une collone VBA

Re, Salut Staple :) plaisir partagé :)

En effet, le code ne réagit à priori pas si on déroule des valeurs.

En écrivant ce code, je me suis appuyé sur
généralement la cellule est vide et on la remplis
Ce qui me laissait supposer que les données étaient remplies à la main :)

Sinon, pas pensé au with, c'est vrai que c'est plus propre :)

Cordialement,
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 920
Membres
101 840
dernier inscrit
SamynoT