Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/09/2011, 20h08   #1
Invité de passage
 
Homme patrick
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme patrick
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 3
Points : 3
Par défaut couper coller sous VBA

Je débute sous VBA avec Excel 2007 je dois couper une ligne dans un tableau d'une feuille et la coller dans un autre tableau dans une autre feuille et cela régulièrement. Jusqu'à maintenant, j'arrive à sélectionner la ligne mettre mes alertes mais pas moyen de couper et coller. Merci de votre aide
felixcp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 20h13   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 899
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 899
Points : 7 185
Points : 7 185
Bonjour,

Ci dessous le code pour copier la ligne 1 de la feuil1 en ligne 2 de la feuil2
Code :
Sheets("Feuil1").Rows(1).Copy Sheets("Feuil2").Rows(2)
Que veux tu dire part "mettre mes alertes"

EDIT ; en effet, comme le dit Blanka347, si couper alors mettre Cut à la place de Copy
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 20h43   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 33
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 33
Points : 10
Points : 10
Code :
Sheets("Feuil1").Rows(1).Copy Sheets("Feuil2").Rows(2)
Ca ne serait pas "cut" par hasard ?
blanka347 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2011, 06h01   #4
Invité de passage
 
Homme patrick
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme patrick
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 3
Points : 3
Par défaut couper coller

Bonjour et merci de votre aide

je vais être plus clair
J'ai un tableau de suivi ou suivant le résultat je dois couper la ligne. Dans mon idée, je clique sur un bouton en userform, un premier message me demande de sélectionner une ligne, je sélectionne ma ligne, une alerte me demande de confirmer oui/non puis cela coupe pour coller dans un autre tableau dans une autre feuille. En cas d'une nouvelle sélection, même chose mais cela colle en dessous de la premiere. Mon problème tout se passe bien bien jusqu'à couper. Cela ne marche pas.
Merci encore
felixcp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2011, 08h41   #5
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 899
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 899
Points : 7 185
Points : 7 185
Est ce ok avec de code

Le tableau est dans les colonnes A à D
Code :
1
2
3
4
5
6
7
8
9
Dim i As Long
 
i = InputBox("ligne a copier")
 
If MsgBox("confirmer la copie", vbYesNo) = vbYes Then
 
    Sheets("Feuil1").Range("A" & i & ":D" & i).Cut Sheets("Feuil2").Range("A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1)
 
End If
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 21h33   #6
Invité de passage
 
Homme patrick
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme patrick
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 3
Points : 3
Par défaut couper coller

Pas moyen de m'en sortir.

Je vous glisse mon projet que j'arrive pas à finir. Pouvez vous me dire comment finir? Je sais que je ne suis pas loin de la solution mais je bloque
Si vous avez une idée je suis prenneur. Merci à tous pour votre patience.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub CommandButton_Suppression_de_ligne_Click()
Dim ChoixRows As Range
Dim AConfirmer
 
'   Choix des lignes
Set ChoixRows = Application.InputBox( _
    Prompt:="Sélectionnez la ligne à couper", _
    Title:="Choix de la ligne", _
    Type:=8)
 
'   Sélection de la ligne
'   Demande de confirmation
ChoixRows.Select
AConfirmer = MsgBox( _
    Prompt:="Confirmez la suppression de la ligne", _
    Title:="Suppression de la ligne", _
    Buttons:=vbYesNo + vbExclamation + _
    vbDefaultButton2)
If AConfirmer = vbYes Then ChoixRows.Cut
 Sheets("V8X Réformé").Select
 
End Sub
Mon problème:
J'arrive pas à sélectionner ma page ("V8X Réformé") et coller mon résultat dans la case ("B7") puis prévoir une nouvelle ligne pour la prochaine opération de couper coller.
felixcp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 23h49   #7
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 899
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 899
Points : 7 185
Points : 7 185
Essais comme cela (je me suis attardé sur cette ligne en considérant que le code qui précède fonctionne)

Code :
1
2
3
4
 
If AConfirmer = vbYes Then 
   ChoixRows.Cut Sheets("V8X Réformé").Range("B" & Sheets("V8X Réformé").Range("B65536").End(xlup).row +1)
End If
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 06h14   #8
Invité de passage
 
Homme patrick
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme patrick
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 3
Points : 3
Par défaut couper coller

Bonjour,

pas moyen....Pourtant, il me reste plus cas coller. j'ai même pas un defaut qui remonte avec ma conbinaison.

J'ai inséré tes lignes à la suite et j'ai un défaut 1004. Quand je déchiffre ta solution cela me parrait logique.
je galère.....

pas d'autre idées? dans l'ensemble le début est bon? peut être trop compliqué? j'ai mis des heures à faire cela.
Merci encore de ton aide.
felixcp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 07h59   #9
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Bonjour,

Si tu coupes une ligne entière, tu dois coller une ligne entière.

Pour vérifier, essaie avec

Code :
ChoixRows.Cut Sheets("V8X Réformé").Range("A" & Sheets("V8X Réformé").Range("B65536").End(xlup).row +1)
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 13h58   #10
Invité de passage
 
Homme patrick
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme patrick
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 3
Points : 3
Par défaut Couper coller

Superrrrrr....
Un grand merci à tous pour votre aide.
Cela marche comme j'avais presque prévu. Reste un point non prévu, dans le premier tableau (ligne que je coupe) il me reste la ligne en blanc.
Question, dois je incorporer une ligne de suppression juste après "couper" ou une fois que la fonction coller est effectuée.
J'attend votre avis mais je suis super motivé pour la suite encore merci
felixcp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 14h07   #11
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 899
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 899
Points : 7 185
Points : 7 185
Tu peux supprimer ta ligne vide
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 15h35   #12
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Attention, après le couper–coller la plage ChoixRows a changé d’adresse.
Le numéro de ligne correspond à celui du collage.

Si tu codes tu ne vas pas supprimer la bonne ligne.

Le plus simple, c’est de remplacer cut par copy.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub CommandButton_Suppression_de_ligne_Click()
Dim ChoixRows As Range
Dim AConfirmer
    ' Choix de la ligne
    Set ChoixRows = Application.InputBox(Prompt:="Sélectionnez la ligne à couper", Title:="Choix de la ligne", Type:=8)
    ' Sélection de la ligne
    ChoixRows.Select
    ' Demande de confirmation
    AConfirmer = MsgBox(Prompt:="Confirmez la suppression de la ligne", Title:="Suppression de la ligne", Buttons:=vbYesNo + vbExclamation + vbDefaultButton2)
    ' Copie de la ligne
    If AConfirmer = vbYes Then ChoixRows.Copy Sheets("V8X Réformé").Range("A" & Sheets("V8X Réformé").Range("B65536").End(xlUp).Row + 1)
    ' Suppression de la ligne
    ChoixRows.Delete
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 19h09   #13
Invité de passage
 
Homme patrick
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme patrick
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 3
Points : 3
Par défaut couper coller

merci de votre aide et de votre rapidité.


bonne soirée
felixcp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h27.


 
 
 
 
Partenaires

Hébergement Web