IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème écriture dernière colonne


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2009
    Messages : 38
    Points : 37
    Points
    37
    Par défaut Problème écriture dernière colonne
    Bonjour à toutes et à tous,

    Je replonge dans le VBA après plusieurs années d'abstinence et ce n'est pas sans douleurs.

    Je souhaite copier la valeur d'une cellule d'un onglet X dans la première colonne vide de la dernière ligne non vide d'un onglet Y.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Sub Verifications()
     
        ''''Création variables
        Dim nbenreg As Long
        Dim DernLignVide As Long
        Dim DernColoVide As String
     
        ''''Pour parcourir l'ensemble des lignes non vides
        nbenreg = Range("A3").End(xlDown).Row
        For i = 3 To nbenreg
     
            ''''Pour n'effectuer les contrôles que sur les lignes dont la "Validation" vaut "OK"
            If Sheets("Fichier de travail").Range("E" & i) = "OK" Then
     
                DernLignVide = Sheets("CR").Range("A1").End(xlDown).Row + 1
                ''''Le "Nom" ne doit pas être vide
                If Sheets("Fichier de travail").Range("G" & i) = "" Then
                    code_K = Sheets("Fichier de travail").Range("A" & i).Value
                    Range("CR!A" & DernLignVide).Value = code_K
                    'MsgBox DernLignVide -- vaut 3 
                    DernColoVide = Sheets("CR").Range("XFD" & DernLignVide).End(xlToLeft).Column + 1
                    'MsgBox DernColoVide -- vaut 2
                    Range("CR!" & DernColoVide & DernLignVide).Value = "Nom vide"
                End If
     
            End If
     
        Next i
     
    End Sub
    Ceci ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("CR!" & DernColoVide & DernLignVide).Value = "Nom vide"
    Ceci ne fonctionne pas non plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("CR").Cells(DernLignVide, DernColoVide).Value = "Nom vide"
    Pouvez-vous me dire pourquoi cela ne fonctionne pas et me fournir une solution ?

    Merci d'avance !

  2. #2
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour,

    Voir ici : https://www.developpez.net/forums/d1...e/#post8366036
    si cela correspond
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2009
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Bonjour,

    Voir ici : https://www.developpez.net/forums/d1...e/#post8366036
    si cela correspond
    Bonjour,

    Merci pour cette réponse, mais elle ne répond pas à ma problématique.

    Comme vous pouvez le voir ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     code_K = Sheets("Fichier de travail").Range("A" & i).Value
                    Range("CR!A" & DernLignVide).Value = code_K
    On met dans la cellule A* de l'onglet CR la valeur de code_K;

    Je souhaite que ma prochaine valeur dans cette itération soit écrite dans la 1re colonne vide à droite sur la même ligne que la cellule A*.

  4. #4
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Re,

    Je n'ai pas fait de pointage feuille /cellule, ceci va chercher la 1ère cellule vide en partant de la gauche, ex. (À adapter) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(11, 1).End(xlToRight).Offset(, 1).Select
    Donc ici la variable i remplacera le nombre/ligne 11

    Edit : dans l'autre sens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(11, Columns.Count).End(xlToLeft).Offset(, 1).Select
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2009
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    En prenant le dernier code proposé et en l'adaptant, cela fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(DernLignVide, Columns.Count).End(xlToLeft).Offset(, 1).Value = "Nom vide"
    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de dernière colonne vide ou non vide
    Par wsquare dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2016, 15h39
  2. [XL-2007] Problème avec Selection cellule dernière colonne
    Par cathodique dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/04/2013, 12h17
  3. problème écriture sur un fichier
    Par drinkmilk dans le forum MFC
    Réponses: 4
    Dernier message: 24/06/2007, 00h08
  4. [Servlet] Probléme écriture fichier
    Par hedgehog dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 23/05/2005, 15h17
  5. [VB.NET] Écriture par colonne streamwriter...?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/04/2005, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo