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 de #N/A après transfert de données et décalage colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut Problème de #N/A après transfert de données et décalage colonne
    Bonjour,

    Dans un fichier de facturation, j'aimerai pouvoir faire un transfert de données vers un nouvel onglet du classeur.

    J'ai un onglet "Clients". Lorsque je clique sur la ligne correspondante de la colonne A, la facture apparait comme réglé dans la colonne H. Lorsque le clique sur le bouton "Facture réglée", je voudrais envoyer les colonnes C à G de chaque ligne concernées vers l'onglet "Réglé" du même classeur.
    Pour l'instant, ça fonctionne MAIS (malheureusement, il y a un "Mais"), toutes les colonnes suivantes des lignes insérées sont remplies par "#N/A" (et je ne vois pas pk ...) et je souhaiterais que l'insertion commence à partir de la colonne B (et non de la colonne A) de chaque ligne

    Ci joint, le fichier concerné.

    Merci pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,
    au vue du code que tu ne fournis pas dans ton message , moi non plus!

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    le code était dans le fichier joint, je pensais que ça suffisait, dsl ...

    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
     
    Sub factréglé()
     
    Dim i%, j%, Copie(5)
     
    Copie(0) = Date
     
    For i = 4 To Sheets("Clients").Cells(Rows.Count, 8).End(xlUp).Row
        For j = 1 To 5
            Copie(j) = Cells(i, j + 2)
        Next j
        If Cells(i, 8) = "OUI" Then
        ThisWorkbook.Worksheets("Réglé").Rows(ThisWorkbook.Worksheets("Réglé").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row).Value = Copie
     
        Sheets("Clients").Rows(i).Delete
        End If
    Next i
     
    End Sub

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 199
    Par défaut
    Bonjour,

    Je te propose une autre solution.

    Cordialement,



    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
     
     
    Sub factréglé_bis()
     
    Dim fichierFacture As String
    Dim fichier_facture As Workbook
    Dim feuille_clients As Worksheet, feuille_regle As Worksheet
    Dim i As Integer, derLigne As Integer
     
    fichierFacture = ActiveWorkbook.Name
     
    Set fichier_facture = Workbooks(fichierFacture)
    Set feuille_clients = fichier_facture.Worksheets("Clients")
    Set feuille_regle = fichier_facture.Worksheets("Réglé")
     
    For i = 4 To feuille_clients.Range("b" & Rows.Count).End(xlUp).Row
        If feuille_clients.Cells(i, 8) = "OUI" Then
            derLigne = feuille_regle.Range("b" & Rows.Count).End(xlUp).Row + 1
     
            feuille_regle.Range(feuille_regle.Cells(derLigne, 2), feuille_regle.Cells(derLigne, 7)).Value = feuille_clients.Range(feuille_clients.Cells(i, 2), feuille_clients.Cells(i, 7)).Value
            feuille_regle.Range(feuille_regle.Cells(derLigne, 8), feuille_regle.Cells(derLigne, 9)).Value = feuille_clients.Range(feuille_clients.Cells(i, 9), feuille_clients.Cells(i, 10)).Value
            feuille_clients.Rows(i).Delete
        End If
    Next i
     
    End Sub

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    Merci pour ce retour.

    Le code fonctionne parfaitement, mais je ne veux pas récupéré la date de la cellule B dans l'onglet "Clients": J'ai besoin que ce soit la date du jours qui apparaisse dans la colonne B de l'onglet "Réglé".

    Merci pour ton aide

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    C'est bon, j'ai réussi comme un grand (enfin, pour le dernier pb ....)

    Encore merci pour ton aide goldstar

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

Discussions similaires

  1. [XL-2003] transfert de données d'une colonne à l'autre
    Par coolman53 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/09/2012, 09h52
  2. Réponses: 12
    Dernier message: 17/02/2012, 22h51
  3. [débutant] serveur-client : problème de transfert de données
    Par Mag007 dans le forum Développement
    Réponses: 2
    Dernier message: 19/04/2007, 22h05
  4. Problème d'espace disponible après suppression de données
    Par carjo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2006, 15h48
  5. [Designer] Problème de transfert de données entre modul
    Par BILLYPATOU dans le forum Designer
    Réponses: 11
    Dernier message: 09/03/2004, 18h15

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