Déplacement de cellule

Bonjour,

Voici mon petit problème, je voudrais faire avec vba ceci :

si la case A1 est vide, alors je mets "blabla".

par contre, s'il y a quelque chose d'écrit en A1, alors on écrit en B1 "blabla".

Mais s'il y a écrit quelque chose B1, alors "blabla" est écrit en C1, et ainsi de suite.

En gros, s'il y a écrit quelque chose sur la ligne 1, la colonne se décale de +1.

Merci.

bonjour

pour connaitre la prochaine colonne vide pour la ligne 1 :

dernCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column+1

fred

Bonjour plong,

Je te propose ce code VBA :

Sub Essai()
  Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column - ([A1] <> "")) = "blabla"
End Sub

Cordialement,

dhany

Yes merci ça fonctionne. Bon maintenant faut que je l'applique à mon code.

n'oubli pas.....

Fred

Rebonjour les gars, bon j'arrive pas à faire ce que je veux, et en plus le projet à légèrement changé ^^.

Du coup, ce que j'aurais besoin c'est toujours la même chose :

en gros, si sur ma case b8 j'ai rien, je mets ce qu'il y a sur la case b4.

dans le cas où j'ai quelque chose dans b8, je mets dans b9 ce qu'il y a dans b4.

mais il faut que je le fasse avec Do While, mais je ne sais pas l'utiliser ... il y aurait il une âme charitable pour m'aider ?

Bonjour plong,

Pas clair, ton énoncé !

Si rien en B8, où mets-tu le contenu de B4 ? en B9 ? autre ? si c'est en B9 : traitement identique que s'il y a quelque chose en B8, donc sans faire de test : mettre le contenu de B4 en B9 ; enfin, tu dois utiliser Do ... While : ok, mais pour faire quoi ? et pour un traitement sur plusieurs lignes ? ou sur plusieurs colonnes ?

dhany

oui c'est vrai, je ne suis pas très clair, alors :

En B4 j'ai des volumes et en B8, j'ai un tableau récapitulatif de tous les données que je mettrai.

En bref, ce que je veux c'est qu'à chaque fois que j'appuie sur le bouton de commande, les données du volume se met dans le tableau récapitulatif.

par ex :

B4 = 9

j'appuie sur le bouton

B8 = 9

si je change la valeur de B4 par 4, et que j'appuie sur le bouton, je veux avoir dans mon tableau :

B8 = 9

B9 = 4

et ainsi de suite, si j'appuie 5 fois sur le bouton, je veux avoir :

B8 = 9

B9 = 4

B10 = 4

B11 = 4

B12 = 4

B13 = 4

B14 = 4

et je veux le faire avec do while parce qu'il y a aussi le même processus sur d'autres colonnes

Ton nouvel énoncé est maintenant plus clair, mais j'aurais dû te demander ton fichier !

Je te propose quand même ce fichier Excel :

7exo-plong.xlsm (17.54 Ko)

Clique sur le bouton « Valider » ; n'oublie pas de changer avant les valeurs de la ligne 4.

Alt F11 pour voir le code VBA, puis revenir sur Excel

Si besoin, tu peux demander une adaptation.

Merci de me dire si ça te convient.

Si c'est ok, merci de passer le sujet en résolu ; sinon, envoie ton fichier sans données confidentielles

et indique quels sont les changements que tu attends.

dhany

voici le fichier

4plong.xlsm (26.85 Ko)

Je te retourne ton fichier modifié :

5plong.xlsm (24.58 Ko)

À tester et vérifier soigneusement.

Cordialement,

dhany

merci, j'ai trouvé la solution à mon problème.

Dim i As Integer
        i = 8

    Do While Not IsEmpty(Cells(i, 2))
        i = i + 1
    Loop

    Cells(i, 2) = [b4] 'date
    Cells(i, 3) = [C4] 'type déchet
    Cells(i, 4) = [h5] 'code déchet
    Cells(i, 5) = [d4] 'transporteur
    Cells(i, 6) = [e4] 'affretement
    Cells(i, 7) = [f4] 'exutoire
    Cells(i, 8) = [g4] 'reconditionnement
    Cells(i, 9) = [f5] 'num cap
    Cells(i, 10) = [j5] 'imma   
    Cells(i, 11) = [k4] & " " & [k5] 'num bon bsd
    Cells(i, 12) = [l4] 'vol
    Cells(i, 13) = [m4] 'quantité

    Select Case Cells(i, 3)
        Case Is = "Déchets_Inertes"
            Cells(i, 3) = "DI"
            Cells(i, 9).ClearContents
            Cells(i, 10).ClearContents
            Cells(i, 11).ClearContents
            Cells(i, 13).ClearContents
        Case Is = "Déchets_Non_Dangereux"
            Cells(i, 3) = "DND"
            Cells(i, 12).ClearContents
            Cells(i, 10).ClearContents
        Case Is = "Déchets_Dangereux"
            Cells(i, 3) = "DD"
            Cells(i, 12).ClearContents
        Case Is = "Déchets_Amiantés"
            Cells(i, 3) = "DA"
           Cells(i, 12).ClearContents
        Case Is = "Déchets_Spécifiques"
            Cells(i, 3) = "DS"
            Cells(i, 12).ClearContents
    End Select
Rechercher des sujets similaires à "deplacement"