Copier le contenu d'une ligne dans une colonne/VBA
Fermé
wakafa
Messages postés
39
Date d'inscription
mercredi 22 juillet 2015
Statut
Membre
Dernière intervention
7 décembre 2020
-
Modifié par wakafa le 22/07/2015 à 13:29
wakafa Messages postés 39 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020 - 23 juil. 2015 à 12:51
wakafa Messages postés 39 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020 - 23 juil. 2015 à 12:51
En fait je suis débutante en VBA et j'ai vraiment besoin de votre aide. bn mn pb c ke je dois copier le contenu d'une ligne de cumul d'une feuil1 dans la 2éme colonne d'une autre feuille sachant que les 6 premières cases de la ligne à copier sont vides alors que je dois recopier le contenu à partir de la 2éme case de la colonne.
SVP aidez moi c urgent et merci d'avance
SVP aidez moi c urgent et merci d'avance
A voir également:
- Copier le contenu d'une ligne dans une colonne/VBA
- Déplacer une colonne excel - Guide
- Comment copier une vidéo youtube - Guide
- Aller à la ligne dans une cellule excel - Guide
- Trier une colonne excel - Guide
- Formule somme excel colonne - Guide
9 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
22 juil. 2015 à 14:19
22 juil. 2015 à 14:19
Bonjour Wakafa, bonjour le forum,
Tu fournis tellement peu d'indications que le code ci-dessous est à réécrire en l'adaptant à ton cas :
Tu fournis tellement peu d'indications que le code ci-dessous est à réécrire en l'adaptant à ton cas :
Sub Macro1() Dim O1 As Worksheet 'déclare la variable O1 (Onglet 1) Dim O2 As Worksheet 'déclare la variable O2 (Onglet 2) Dim LI As Integer 'déclare la variable LI (LIgne) Dim COL As Integer 'déclare la variable COL (COLonne) Dim TC As Variant 'déclare la variable TC (Tableau de cellules) Set O1 = Sheets("Feuil1") 'définit l'onglet O1 (à adapter) Set O2 = Sheets("Feuil2") 'définit l'onglet O2 (à adapter) LI = 9 'définit la ligne LI des données à copier (à adapter) COL = 2 'définit la colonne COL où sont collées les données (à adapter) 'définit la tableau de cellules TC contenant les données TC = O1.Range(O1.Cells(9, 6), O1.Cells(9, Application.Columns.Count).End(xlToLeft)) 'renvoie dans la cellule ligne 2, colonne COL de l'onglet O2, le tableau de cellulles TC transposé O2.Cells(2, COL).Resize(UBound(TC, 2), 1) = Application.Transpose(TC) End Sub
wakafa
Messages postés
39
Date d'inscription
mercredi 22 juillet 2015
Statut
Membre
Dernière intervention
7 décembre 2020
22 juil. 2015 à 20:37
22 juil. 2015 à 20:37
Bonjour ThauTheme,
Merci beaucoup pour votre réponse aussi rapide, bon j'ai essayé d'adapter votre code à ma situation mais j'ai pas obtenu de résultat, comme tu as déjà dit peut être j'ai fournis peu d'indications. Pour ceci je vais détailler un peu plus on fait je veux que la ligne 330 de la feuil1 alimente la 2éme colonne de la feuille "CAUSES" dont la 1ére colonne est déja remplie et ceci pour que mon graphe puisse être changé une fois les données changent.sachant que ,comme j'ai déja mentionné, la ligne 330 n'est remplie qu'à partir de la 7ème case et la colonne à remplir commence de la 2éme case
Merci Infiniment ThauTheme
Merci beaucoup pour votre réponse aussi rapide, bon j'ai essayé d'adapter votre code à ma situation mais j'ai pas obtenu de résultat, comme tu as déjà dit peut être j'ai fournis peu d'indications. Pour ceci je vais détailler un peu plus on fait je veux que la ligne 330 de la feuil1 alimente la 2éme colonne de la feuille "CAUSES" dont la 1ére colonne est déja remplie et ceci pour que mon graphe puisse être changé une fois les données changent.sachant que ,comme j'ai déja mentionné, la ligne 330 n'est remplie qu'à partir de la 7ème case et la colonne à remplir commence de la 2éme case
Merci Infiniment ThauTheme
wakafa
Messages postés
39
Date d'inscription
mercredi 22 juillet 2015
Statut
Membre
Dernière intervention
7 décembre 2020
22 juil. 2015 à 21:12
22 juil. 2015 à 21:12
Mercii ThauTheme c'est résolu, j'avais une petite erreur ^^
wakafa
Messages postés
39
Date d'inscription
mercredi 22 juillet 2015
Statut
Membre
Dernière intervention
7 décembre 2020
22 juil. 2015 à 21:21
22 juil. 2015 à 21:21
j'ai un petit problème, la ligne c'est une ligne de Cumul donc ses valeurs changent de temps à l'autre, mais j'ai remarquer que lorsque ces valeurs changent celles de la colonne ne changent pas
Merci ThauTheme et désolé pour le dérangement
Merci ThauTheme et désolé pour le dérangement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
wakafa
Messages postés
39
Date d'inscription
mercredi 22 juillet 2015
Statut
Membre
Dernière intervention
7 décembre 2020
Modifié par wakafa le 22/07/2015 à 22:01
Modifié par wakafa le 22/07/2015 à 22:01
je dois à chaque fois cliquer sur exécuter les macros pour que ça fonctionne, alors que je veux que la saisie soit automatique, en modifiant la ligne Cumul la colonne se modifie automatiquement sans ouvrir les macros
Merci
Merci
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
Modifié par ThauTheme le 23/07/2015 à 09:17
Modifié par ThauTheme le 23/07/2015 à 09:17
Bonjour Wafaka, bonjour le forum,
La modification se fait désormais de manière automatique à l'aide la procédure événementielle Change, chaque fois que tu modifies une cellule de la ligne 330...
À plus,
ThauTheme
- Copie le code ci-dessous
- Clique avec le bouton droit dans le premier onglet (en bas) et choisis l'option Visualiser le code
- Dans la grande partie en haut à droite, colle le code
- Enregistre
La modification se fait désormais de manière automatique à l'aide la procédure événementielle Change, chaque fois que tu modifies une cellule de la ligne 330...
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet Dim O As Worksheet 'déclare la variable O (Onglet) Dim LI As Integer 'déclare la variable LI (LIgne) Dim TC As Variant 'déclare la variable TC (Tableau de cellules) If Target.Row <> 330 Then Exit Sub 'si le changement a lieu ailleurs que dans la ligne 330, sort de la procédure LI = Target.Row 'définit la ligne LI Set O = Sheets("CAUSES") 'définit l'onglet O 'efface les anciennes données de la colonne 2 (=B) de l'onglet O (à partir de la ligne 2) O.Range(O.Cells(2, 2), O.Cells(Application.Rows.Count, 2).End(xlUp)).ClearContents 'définit la tableau de cellules TC contenant les données TC = Range(Cells(LI, 7), Cells(LI, Application.Columns.Count).End(xlToLeft)) 'renvoie dans la cellule B2 de l'onglet O, le tableau de cellulles TC transposé O.Cells(2, 2).Resize(UBound(TC, 2), 1) = Application.Transpose(TC) End Sub
À plus,
ThauTheme
wakafa
Messages postés
39
Date d'inscription
mercredi 22 juillet 2015
Statut
Membre
Dernière intervention
7 décembre 2020
23 juil. 2015 à 10:52
23 juil. 2015 à 10:52
Bonjour ThauTheme,
Encore Merci de l'intérêt apporté à mon problème
Malheureusement en faisant ceci ça donne pas résultat, mais en collant le code sur la partie sub Command-bouton() la colonne change en cliquant sur ce bouton, mais le problème c'est que je dois l'exécuter deux fois pour que les dernières informations ajoutés s'affichent, je pense que c'est un problème de mise à jours ou quoi!!
Merci
Encore Merci de l'intérêt apporté à mon problème
Malheureusement en faisant ceci ça donne pas résultat, mais en collant le code sur la partie sub Command-bouton() la colonne change en cliquant sur ce bouton, mais le problème c'est que je dois l'exécuter deux fois pour que les dernières informations ajoutés s'affichent, je pense que c'est un problème de mise à jours ou quoi!!
Merci
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
23 juil. 2015 à 11:48
23 juil. 2015 à 11:48
Re,
En refaisant des tests je me suis rendu compte que ça plantait quand la ligne ne contenait qu'une seule valeur. Voici le code modifié et un fichier exemple en pièce jointe...
le fichier
En refaisant des tests je me suis rendu compte que ça plantait quand la ligne ne contenait qu'une seule valeur. Voici le code modifié et un fichier exemple en pièce jointe...
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet Dim O As Worksheet 'déclare la variable O (Onglet) Dim LI As Integer 'déclare la variable LI (LIgne) Dim TC As Variant 'déclare la variable TC (Tableau de cellules) If Target.Row <> 330 Then Exit Sub 'si le changement a lieu ailleurs que dans la ligne 330, sort de la procédure LI = Target.Row 'définit la ligne LI Set O = Sheets("CAUSES") 'définit l'onglet O 'efface les anciennes données de la colonne 2 (=B) de l'onglet O (à partir de la ligne 2) O.Range(O.Cells(2, 2), O.Cells(Application.Rows.Count, 2).End(xlUp)).ClearContents 'définit la tableau de cellules TC contenant les données TC = Range(Cells(LI, 7), Cells(LI, Application.Columns.Count).End(xlToLeft)) 'renvoie dans la cellule B2 de l'onglet O, le tableau de cellulles TC transposé On Error Resume Next 'gestion des erreur (en cas d'erreur passe à la ligne suivante 'renvoie dans B2 de l'ontlet O le tableau TC transposé O.Cells(2, 2).Resize(UBound(TC, 2), 1) = Application.Transpose(TC) 'génère une erreur si le tableau ne contient qu'une seule valeur If Err <> 0 Then 'condition : si une erreur a été générée Err.Clear 'efface l'erreur O.Cells(2, 2).Value = Rows(LI).Find("*").Value 'copie l'unique valeur trouvée de la ligne dans la cellule B2 de l'onglet O End If 'fin de l condition End Sub
le fichier
wakafa
Messages postés
39
Date d'inscription
mercredi 22 juillet 2015
Statut
Membre
Dernière intervention
7 décembre 2020
23 juil. 2015 à 12:51
23 juil. 2015 à 12:51
Merci infiniment ThauTheme :)