Copier une plage d'information non vide

Cydor007

XLDnaute Occasionnel
Bonjour à tous,

Je ne suis pas très certain comment bien identifier une cellule non vide dans une macro. C'est pour cela que j'ai besoin de vous pour m'aider à corriger le tout.

Voici mon problème:

1- J'aimerais pouvoir copier les informations onglets (Table transfert facture client) de ma facture de A3:G? c'est à dire copier les infos jusqu'à temps que la ligne (dans mon exemple est la ligne 10) ou une cellule vide comme G10 soit vide. Dans ma situation les factures peuvent variées d'une fois à l'autre. Avec la bonne sélection (range), coller le tout dans l'autre onglet (Table facture client)

2- Dans l'onglet Table facture client, j'aimerais que la macro colle les informations à partir de la prochaine cellule vide (dans mon exemple c'est A17) et ainsi de suite pour n'importe quelle facture.

je vous laisse mon exemple et j'attends vos suggestions.

Merci de votre aide.

Cydor007:)
 

Pièces jointes

  • Copier plage avec cellule non vide 1.xlsm
    41 KB · Affichages: 91

Cydor007

XLDnaute Occasionnel
Re : Copier une plage d'information non vide

Salut Papou-net,

J'ai toujours le même résultat, c'est à dire que je colles les données, mais il y a toujours une espace de 25 lignes entre chaque enregistrement de facture. C'est exactement l'écart que j'ai dans l'onglet Feuille liaison BD ( cellule en vert).

Hypothèse pour trouver une solution: Est-ce que c'est possible de copier les données et les coller temporairement à côté (ex. de T3 à AE27) et effacer le contenu de tous les cellules sans données ( clear.content) et par la suite effectuer la même opération copier coller dans l'onglet Facture achat. Le problème quand je copie coller les 25 lignes avec l'option coller seulement les valeurs, tous les cellules qui affiche rien, ont quand même du contenu. J'ai valider avec la fonction est =ESTVIDE(xx). Donc, si on arrive à effacer tous ces cellules, on va être capable de coller seulement l'information utile pour la facture.

J'attends tes commentaires. Merci

Cydor007
 
Dernière édition:

Cydor007

XLDnaute Occasionnel
Re : Copier une plage d'information non vide

Bonjour à tous,

Quelqu'un a une idée comment régler mon problème de copie de donnée?

Est-ce que c'est possible à l'intérieur d'une macro de définir une cellule complétement vide s'il n'y a rien dedans? Et par la suite, coller seulement les informations qui sont pertinentes dans le tableau.

Pour plus de détail, reprennez le dernier fichier que j'ai envoyé et voyer dans l'onglet facture achat à quoi ressemble mon problème.

Merci de votre aide.

Cydor007
 

Papou-net

XLDnaute Barbatruc
Re : Copier une plage d'information non vide

Bonjour Cydor,

Je crois avoir trouvé l'origine du problème.

Il semble venir du fait que tes formules de la feuille liaison BD insèrent un espace si la condition testée est fausse.

On peut dire que ton astuce m'a donné du fil à retordre: en général on met une valeur vide ("") au lieu d'un espace (" ").

Refais donc un essai après avoir modifié ta macro comme ci-dessous:

Code:
Sub testcopieclient2()
Dim celS As Range 'celS=cellule source
Dim col As Integer, lgC As Integer ' col=décalage de colonne, lgC=n° de ligne cible

With Feuil14
  .Select
  For Each celS In .Range("E3:E" & Rows.Count).SpecialCells(xlCellTypeFormulas)
    If celS.Value <> " " Then
      For col = 0 To 11
        lgC = Feuil8.Cells(Rows.Count, col + 1).End(xlUp).Row + 1
        If celS.Offset(0, col).Value <> "" Then
          Feuil8.Cells(lgC, col + 1).Value = celS.Offset(0, col).Value
          Else
          Feuil8.Cells(lgC, col + 1).ClearContents
        End If
      Next
    End If
  Next
End With
Sheets("Formulaire de facturation").Select
End Sub
A +

Cordialement.
 

Cydor007

XLDnaute Occasionnel
Re : Copier une plage d'information non vide

Bonjour papou-net,

Je ne savais pas que cela pouvait faire une différence. Par contre si c'est plus facile à programmer sans les espaces ( c'est surement la cause des cellules vides qui se copiaient quand même à cause des espaces), je vais les enlever.

Je vais tester ta dernière proposition et valider le tout. Aussi je suis curieux de faire le même exercice en enlevant les espaces.

Merci de ton implication papou-net.:)

Cydor007
 

Cydor007

XLDnaute Occasionnel
Re : Copier une plage d'information non vide

Bonjour Papou-net,

J'ai enfin réussi. Il a fallu que j'enlève tous les espaces dans mes cellules vides et corrigé la macro en conséquence.

Après plusieurs test, j'obtiens excatement ce que je voulais.

Merci pour tout et ta participation.

Bonne journée

Cydor007:cool::cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 022
Membres
104 006
dernier inscrit
CABROL