Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 VBA Coller seulement si case vide

  • Initiateur de la discussion Initiateur de la discussion vbakr
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

vbakr

XLDnaute Nouveau
Bonjour,

J'aimerais créer un code sur VBA qui permettrait de coller du texte seulement à partir de la première ligne vide (les lignes précédentes contiennent du texte)

Merci de votre aide
 
Bonjour Vbakr, bonjour le forum,

Pas très explicite ! ma réponse aussi (colonne COL à déterminer) :

VB:
Dim DL As Integer

DL = Cells(Application.Rows.Count, COL).End(xlUp).Row + 1
Range("MaplageSource").Copy Cells(DL, COL)
 
Bonjour Robert,

Merci d'avoir répondu!
Voici un fichier pour mieux comprendre
Dans la colonne I j'ai le code site qui caractérise toutes mes données. Je dois donc copier ces données dans la feuille correspondante
Le problème c'est qu'il faut que je colle ces données en-dessous les données récoltées d'un précédent mois.
 

Pièces jointes

Re,

Essaie comme ça :

VB:
Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim L As Integer 'déclare la variable L (incrément)
Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire))
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)

Set OS = Worksheets("Feuille macro") 'définit l'onglet source OS
TV = OS.Range("A1").CurrentRegion 'définit le taleau des valeurs TV
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    D(TV(I, 9)) = "" 'alimente le dictionnaire D avec les données en colonne 9 de TV
Next I 'prochaine ligne de la boucle
TMP = D.Keys 'récupère dans le tableau temporaire TMP la liste des éléments du dictionnaire D sans doublon
For J = 0 To UBound(TMP) 'boucle 1 sur tous les éléments J du tableau temporaire TMP
    Erase TL 'vide le tableau TL
    K = 1 'initialise la variable K
    Set OD = Worksheets("Site " & TMP(J)) 'définit l'onglet destination OD
    Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0) 'définit la cellule de destinatiotn DEST
    For I = 2 To UBound(TV, 1) 'boucle 2 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
        If TV(I, 9) = TMP(J) Then 'condition : si la donnée colonne 9 de la boucle correspond à l'élément J de TMP
            ReDim Preserve TL(1 To UBound(TV, 2), 1 To K) 'redimensionne le tableau des lignes TL
            For L = 1 To UBound(TV, 2) 'boucle 3 : sur toutes les colonnes L du tablau des valeurs TV
                TL(L, K) = TV(I, L) 'récupère dans la ligne L de TL la donnée en colonne L de TV (=> Transposition)
            Next L 'prochaine colonne de la boucle 3
            K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes TL)
        End If 'fin de la condition
    Next I 'prochaine ligne de la boucle 2
    'si K est supérieur à 1, renvoie dans DEST redimensionnée le tableau TL transposé
    If K > 1 Then DEST.Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
Next J 'prochain élément de la boucle 1
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
511
Réponses
5
Affichages
327
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…