Insérer texte dans colonne
nanie13
-
eriiic -
eriiic -
Bonjour, Bonjour,
Je suis débutante et depuis quelques jours je patauge.....
Quelqu'un pourrait-t-il m'aider s'il vous plait ?
Dans ma feuille "Facture 1"
Mon tableau possède 4 colonnes de 6 lignes
Colonne RS = 1ère avance forfaitaire
Colonne TU = 2ème avance forfaitaire
Colonne VW = 3ème avance forfaitaire
Colonne XY = 4ème avance forfaitaire
Je souhaiterais que mon texte s'insère automatiquement
à la bonne place, selon la première cellule vide
Je joins à cette demande ma macro.
Merci
Sub AVANCE_FORFAITAIRE_ACQUITEE()
Dim Banque As String
Dim Emetteur As String
Dim Numéro_Chèque As String
Dim Date_Chèque As String
Dim Numéro_Remise As String
Dim Date_Remise As String
Banque = InputBox("saisir le nom de la banque")
Emetteur = InputBox("saisir le nom de l'emetteur de chèque :")
Numéro_Chèque = InputBox("saisir le numéro de chèque :")
Date_Chèque = InputBox("saisir la date du chèque :")
Numéro_Remise = InputBox("saisir le numéro de remise du chèque :")
Date_Remise = InputBox("saisir la date de remise :")
' 1ERE AVANCE FORFAITAIRE
' Insérer données dans la feuille facture
Windows("Mes Factures.xls").Activate
Range("RS33") = Banque
Range("RS34") = Emetteur
Range("RS35") = Numéro_Chèque
Range("RS37") = Date_Chèque
Range("RS38") = Numéro_Remise
Range("RS39") = Date_Remise
' Insérer données dans la feuille Avance forfaitaire
Windows("Avance Forfaitaire.xls").Activate
Range("D49") = Banque
Range("D50") = Emetteur
Range("D51") = Numéro_Chèque
Range("D53") = Date_Chèque
Range("D54") = Numéro_Remise
Range("D55") = Date_Remise
' Copier le montant du chèque sur la feuille facture
Range("E25:M25").Select
Selection.Copy
Windows(" Mes Factures.xls").Activate
Range("R36:S36").Select
ActiveSheet.Paste Link:=True
Range("R36:S36").Select
Application.CutCopyMode = False
Selection.Copy
Range("R36:S36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' 2EME AVANCE FORFAITAIRE
' Insérer données dans facture
Windows("Mes Factures.xls").Activate
Range("TU33") = Banque
Range("TU34") = Emetteur
Range("TU35") = Numéro_Chèque
Range("TU37") = Date_Chèque
Range("TU38") = Numéro_Remise
Range("TU39") = Date_Remise
' Insérer données dans Avance forfaitaire
Windows("Avance Forfaitaire.xls").Activate
Range("D49") = Banque
Range("D50") = Emetteur
Range("D51") = Numéro_Chèque
Range("D53") = Date_Chèque
Range("D54") = Numéro_Remise
Range("D55") = Date_Remise
' Copier le montant du chèque sur la feuille facture
Range("E25:M25").Select
Selection.Copy
Windows("Factures Belmas.xls").Activate
Range("R36:S36").Select
ActiveSheet.Paste Link:=True
Range("R36:S36").Select
Application.CutCopyMode = False
Selection.Copy
Range("R36:S36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' AVANCE FORFAITAIRE 3
' Insérer données dans facture
Windows("Mes Factures.xls").Activate
Range("VW33") = Banque
Range("VW34") = Emetteur
Range("VW35") = Numéro_Chèque
Range("VW37") = Date_Chèque
Range("VW38") = Numéro_Remise
Range("VW39") = Date_Remise
' Insérer données dans Avance forfaitaire
Windows("Avance Forfaitaire Belmas.xls").Activate
Range("D49") = Banque
Range("D50") = Emetteur
Range("D51") = Numéro_Chèque
Range("D53") = Date_Chèque
Range("D54") = Numéro_Remise
Range("D55") = Date_Remise
' Copier le montant du chèque sur la feuille facture
Range("E25:M25").Select
Selection.Copy
Windows("Factures Belmas.xls").Activate
Range("R36:S36").Select
ActiveSheet.Paste Link:=True
Range("R36:S36").Select
Application.CutCopyMode = False
Selection.Copy
Range("R36:S36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' AVANCE FORFAITAIRE 4
' Insérer données dans facture
Windows("Mes Factures.xls").Activate
Range("XY33") = Banque
Range("XY34") = Emetteur
Range("XY35") = Numéro_Chèque
Range("XY37") = Date_Chèque
Range("XY38") = Numéro_Remise
Range("XY39") = Date_Remise
' Insérer données dans Avance forfaitaire
Windows("Avance Forfaitaire Belmas.xls").Activate
Range("D49") = Banque
Range("D50") = Emetteur
Range("D51") = Numéro_Chèque
Range("D53") = Date_Chèque
Range("D54") = Numéro_Remise
Range("D55") = Date_Remise
' Copier le montant du chèque sur la feuille facture
Range("E25:M25").Select
Selection.Copy
Windows("Factures Belmas.xls").Activate
Range("R36:S36").Select
ActiveSheet.Paste Link:=True
Range("R36:S36").Select
Application.CutCopyMode = False
Selection.Copy
Range("R36:S36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Message si plus de 4 avances
MsgBox "IL N'Y A QUE 4 AVANCES DE PREVUE"
ActiveWorkbook.Save
End Sub
Je suis débutante et depuis quelques jours je patauge.....
Quelqu'un pourrait-t-il m'aider s'il vous plait ?
Dans ma feuille "Facture 1"
Mon tableau possède 4 colonnes de 6 lignes
Colonne RS = 1ère avance forfaitaire
Colonne TU = 2ème avance forfaitaire
Colonne VW = 3ème avance forfaitaire
Colonne XY = 4ème avance forfaitaire
Je souhaiterais que mon texte s'insère automatiquement
à la bonne place, selon la première cellule vide
Je joins à cette demande ma macro.
Merci
Sub AVANCE_FORFAITAIRE_ACQUITEE()
Dim Banque As String
Dim Emetteur As String
Dim Numéro_Chèque As String
Dim Date_Chèque As String
Dim Numéro_Remise As String
Dim Date_Remise As String
Banque = InputBox("saisir le nom de la banque")
Emetteur = InputBox("saisir le nom de l'emetteur de chèque :")
Numéro_Chèque = InputBox("saisir le numéro de chèque :")
Date_Chèque = InputBox("saisir la date du chèque :")
Numéro_Remise = InputBox("saisir le numéro de remise du chèque :")
Date_Remise = InputBox("saisir la date de remise :")
' 1ERE AVANCE FORFAITAIRE
' Insérer données dans la feuille facture
Windows("Mes Factures.xls").Activate
Range("RS33") = Banque
Range("RS34") = Emetteur
Range("RS35") = Numéro_Chèque
Range("RS37") = Date_Chèque
Range("RS38") = Numéro_Remise
Range("RS39") = Date_Remise
' Insérer données dans la feuille Avance forfaitaire
Windows("Avance Forfaitaire.xls").Activate
Range("D49") = Banque
Range("D50") = Emetteur
Range("D51") = Numéro_Chèque
Range("D53") = Date_Chèque
Range("D54") = Numéro_Remise
Range("D55") = Date_Remise
' Copier le montant du chèque sur la feuille facture
Range("E25:M25").Select
Selection.Copy
Windows(" Mes Factures.xls").Activate
Range("R36:S36").Select
ActiveSheet.Paste Link:=True
Range("R36:S36").Select
Application.CutCopyMode = False
Selection.Copy
Range("R36:S36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' 2EME AVANCE FORFAITAIRE
' Insérer données dans facture
Windows("Mes Factures.xls").Activate
Range("TU33") = Banque
Range("TU34") = Emetteur
Range("TU35") = Numéro_Chèque
Range("TU37") = Date_Chèque
Range("TU38") = Numéro_Remise
Range("TU39") = Date_Remise
' Insérer données dans Avance forfaitaire
Windows("Avance Forfaitaire.xls").Activate
Range("D49") = Banque
Range("D50") = Emetteur
Range("D51") = Numéro_Chèque
Range("D53") = Date_Chèque
Range("D54") = Numéro_Remise
Range("D55") = Date_Remise
' Copier le montant du chèque sur la feuille facture
Range("E25:M25").Select
Selection.Copy
Windows("Factures Belmas.xls").Activate
Range("R36:S36").Select
ActiveSheet.Paste Link:=True
Range("R36:S36").Select
Application.CutCopyMode = False
Selection.Copy
Range("R36:S36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' AVANCE FORFAITAIRE 3
' Insérer données dans facture
Windows("Mes Factures.xls").Activate
Range("VW33") = Banque
Range("VW34") = Emetteur
Range("VW35") = Numéro_Chèque
Range("VW37") = Date_Chèque
Range("VW38") = Numéro_Remise
Range("VW39") = Date_Remise
' Insérer données dans Avance forfaitaire
Windows("Avance Forfaitaire Belmas.xls").Activate
Range("D49") = Banque
Range("D50") = Emetteur
Range("D51") = Numéro_Chèque
Range("D53") = Date_Chèque
Range("D54") = Numéro_Remise
Range("D55") = Date_Remise
' Copier le montant du chèque sur la feuille facture
Range("E25:M25").Select
Selection.Copy
Windows("Factures Belmas.xls").Activate
Range("R36:S36").Select
ActiveSheet.Paste Link:=True
Range("R36:S36").Select
Application.CutCopyMode = False
Selection.Copy
Range("R36:S36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' AVANCE FORFAITAIRE 4
' Insérer données dans facture
Windows("Mes Factures.xls").Activate
Range("XY33") = Banque
Range("XY34") = Emetteur
Range("XY35") = Numéro_Chèque
Range("XY37") = Date_Chèque
Range("XY38") = Numéro_Remise
Range("XY39") = Date_Remise
' Insérer données dans Avance forfaitaire
Windows("Avance Forfaitaire Belmas.xls").Activate
Range("D49") = Banque
Range("D50") = Emetteur
Range("D51") = Numéro_Chèque
Range("D53") = Date_Chèque
Range("D54") = Numéro_Remise
Range("D55") = Date_Remise
' Copier le montant du chèque sur la feuille facture
Range("E25:M25").Select
Selection.Copy
Windows("Factures Belmas.xls").Activate
Range("R36:S36").Select
ActiveSheet.Paste Link:=True
Range("R36:S36").Select
Application.CutCopyMode = False
Selection.Copy
Range("R36:S36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Message si plus de 4 avances
MsgBox "IL N'Y A QUE 4 AVANCES DE PREVUE"
ActiveWorkbook.Save
End Sub
A voir également:
- Insérer texte dans colonne
- Insérer vidéo dans powerpoint - Guide
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Insérer une image dans word sans bouger le texte - Guide
- Insérer signature word - Guide
3 réponses
Bonjour,
pour atteindre la dernière cellule occupée de la colonne B:
[B65536].End(xlUp).Select
et donc pour la suivante vide:
[B65536].End(xlUp).Offset(1, 0).Select
Une fois que tu as ta 1ère référence utilise plutôt .offset(ligne,colonne) pour atteindre les cellules suivantes. Par exemple .offset(4,0).value te donne la valeur située 4 lignes plus bas, même colonne
Es-tu sûre de devoir utiliser les colonnes RS, TU, VW et XY ?
Ca ne serait pas plutôt R et S, T et U,... ?
Car elles paraissent bien éloignées et ne se suivent pas...
Je n'ai pas regardé le détail de ton code mais j'ai l'impression que tu écris 4 fois la même chose (aux references près). Ca ne serait pas mieux de stocker dans une cellule le n° de l'avance ? Ensuite t'en servir pour les .offset (tu peux mettre un calcul dedans ex .offset(n*6,0)) et pour tester si les 4 sont atteintes
Et si tu veux qu'on se rende mieux compte met ton fichier sur www.cijoint.fr et colle le lien ici
eric
pour atteindre la dernière cellule occupée de la colonne B:
[B65536].End(xlUp).Select
et donc pour la suivante vide:
[B65536].End(xlUp).Offset(1, 0).Select
Une fois que tu as ta 1ère référence utilise plutôt .offset(ligne,colonne) pour atteindre les cellules suivantes. Par exemple .offset(4,0).value te donne la valeur située 4 lignes plus bas, même colonne
Es-tu sûre de devoir utiliser les colonnes RS, TU, VW et XY ?
Ca ne serait pas plutôt R et S, T et U,... ?
Car elles paraissent bien éloignées et ne se suivent pas...
Je n'ai pas regardé le détail de ton code mais j'ai l'impression que tu écris 4 fois la même chose (aux references près). Ca ne serait pas mieux de stocker dans une cellule le n° de l'avance ? Ensuite t'en servir pour les .offset (tu peux mettre un calcul dedans ex .offset(n*6,0)) et pour tester si les 4 sont atteintes
Et si tu veux qu'on se rende mieux compte met ton fichier sur www.cijoint.fr et colle le lien ici
eric
Bonjour,
Il n'y a qu'un seul fichier d'une seule feuille (avec plein de #REF dedans..) et pas une seule macro. Normal ?
Difficile de se faire une idée.
Par contre je vois plein de cellules fusionnées. Est-ce obligatoire ou c'est ton choix ? Souvent ça complique inutilement les macros VBA
Par exemple 4 cellules (2x2) pour inscrire juste un 1... Tu peux faire un retour à ligne dans une cellule avec ALT+Entrée (=> plus qu'une ligne), et 2 colonnes sont-elles vraiment nécessaires ?
eric
Il n'y a qu'un seul fichier d'une seule feuille (avec plein de #REF dedans..) et pas une seule macro. Normal ?
Difficile de se faire une idée.
Par contre je vois plein de cellules fusionnées. Est-ce obligatoire ou c'est ton choix ? Souvent ça complique inutilement les macros VBA
Par exemple 4 cellules (2x2) pour inscrire juste un 1... Tu peux faire un retour à ligne dans une cellule avec ALT+Entrée (=> plus qu'une ligne), et 2 colonnes sont-elles vraiment nécessaires ?
eric
Bonjour,
Je suis débutante et ce n'est vraiment pas facile pour moi.
Mon facturier se compose comme suit :
Dossier : Factures et Devis
1er classeur : Mes Données
- Feuil1 = Données des factures ou des devis
2ème classeur : Mes Clients
- Feuil1 = Noms et adresses des clients nouveaux et anciens
3ème classeur : Mes Factures
- Feuil1 = Facture 1 page + facture acquittée
- Feuil2 = Facture 2 pages + facture acquittée
- Feuil3 = Facture 3 pages + facture acquittée
- Feuil4 = Facture 4 pages + facture acquittée
- Feuil5 = Facture 5 pages + facture acquittée
- Feuil6 = Tableau récapitulatif
- Les feuilles suivantes sont les factures de l’année
4ème classeur : Mes Devis
- Feuil1 = Devis 1 page
- Feuil2 = Devis 2 pages
- Feuil3 = Devis 3 pages
- Feuil4 = Devis 4 pages
- Feuil5 = Devis 5 pages
- Feuil6 = Tableau récapitulatif
- Les feuilles suivantes sont les devis de l’année
Il n’y a aucun problème entre les macros, et la mise en page ou les cellules fusionnées.
Les factures et les devis s’insèrent automatiquement, avec le nom, l’adresse du client, le numéro de facture, la date et les données.
Les devis peuvent se transformer en facture.
Tout cela fonctionne sans problème.
Je bloque, au niveau des avances forfaitaires ou acomptes, dans ma facture acquittée. J’aimerais que le texte s’insère automatiquement dans la cellule, sans devoir renseigner si c’est la 1ère, la 2ème, la 3ème ou la 4ème, juste par rapport à la cellule vide, soit pour le :
- 1er Acompte = colonne ("RS33")
- 2ème Acompte = colonne ("TU33")
- 3ème Acompte = colonne ("VW33")
- 4ème Acompte = colonne ("XY33")
Exemple :
Cette macro est dans mon premier message : « Sub AVANCE_FORFAITAIRE_ACQUITEE () »
P : Q R : S T : U V : W X : Y Z : AA
32 ACOMPTES 1 2 3 4 Total
33 Banque
34 Emetteur
35 N° Chèque
36 Montant
37 Date
38 N° Remise
39 Date
Voilà ce que j’aimerais rajouter à ma macro, mais je ne sais comment le formuler
Si ("RS33") est vide entrez les données, sinon entrez les données dans ("TU33")
Et si ("TU33") est vide entrez les données, sinon entrez les données dans ("VW33")
Et si ("VW33") est vide entrez les données, sinon entrez les données dans ("XY33")
Merci par avance
Je suis débutante et ce n'est vraiment pas facile pour moi.
Mon facturier se compose comme suit :
Dossier : Factures et Devis
1er classeur : Mes Données
- Feuil1 = Données des factures ou des devis
2ème classeur : Mes Clients
- Feuil1 = Noms et adresses des clients nouveaux et anciens
3ème classeur : Mes Factures
- Feuil1 = Facture 1 page + facture acquittée
- Feuil2 = Facture 2 pages + facture acquittée
- Feuil3 = Facture 3 pages + facture acquittée
- Feuil4 = Facture 4 pages + facture acquittée
- Feuil5 = Facture 5 pages + facture acquittée
- Feuil6 = Tableau récapitulatif
- Les feuilles suivantes sont les factures de l’année
4ème classeur : Mes Devis
- Feuil1 = Devis 1 page
- Feuil2 = Devis 2 pages
- Feuil3 = Devis 3 pages
- Feuil4 = Devis 4 pages
- Feuil5 = Devis 5 pages
- Feuil6 = Tableau récapitulatif
- Les feuilles suivantes sont les devis de l’année
Il n’y a aucun problème entre les macros, et la mise en page ou les cellules fusionnées.
Les factures et les devis s’insèrent automatiquement, avec le nom, l’adresse du client, le numéro de facture, la date et les données.
Les devis peuvent se transformer en facture.
Tout cela fonctionne sans problème.
Je bloque, au niveau des avances forfaitaires ou acomptes, dans ma facture acquittée. J’aimerais que le texte s’insère automatiquement dans la cellule, sans devoir renseigner si c’est la 1ère, la 2ème, la 3ème ou la 4ème, juste par rapport à la cellule vide, soit pour le :
- 1er Acompte = colonne ("RS33")
- 2ème Acompte = colonne ("TU33")
- 3ème Acompte = colonne ("VW33")
- 4ème Acompte = colonne ("XY33")
Exemple :
Cette macro est dans mon premier message : « Sub AVANCE_FORFAITAIRE_ACQUITEE () »
P : Q R : S T : U V : W X : Y Z : AA
32 ACOMPTES 1 2 3 4 Total
33 Banque
34 Emetteur
35 N° Chèque
36 Montant
37 Date
38 N° Remise
39 Date
Voilà ce que j’aimerais rajouter à ma macro, mais je ne sais comment le formuler
Si ("RS33") est vide entrez les données, sinon entrez les données dans ("TU33")
Et si ("TU33") est vide entrez les données, sinon entrez les données dans ("VW33")
Et si ("VW33") est vide entrez les données, sinon entrez les données dans ("XY33")
Merci par avance
Bonsoir nanie13,
je crois que c'est ça que tu veux
Sub nbAvance()
Dim fini As Boolean, nbAvance As Long
fini = False: nbAvance = 0
'Range("R33").Select
While Not fini
If ActiveCell.Value = "" Then
fini = True
Else
ActiveCell.Offset(0, 2).Select
nbAvance = nbAvance + 1
End If
Wend
If nbAvance = 4 Then
ActiveCell.Offset(0, -2).Select
MsgBox ("IL N'Y A QUE 4 AVANCES DE PREVUE")
End If
End Sub
il faut qu'à l'appel la 1ère cellule de saisie soit sélectionnée, là je te l'ai mise en commentaire
eric
je crois que c'est ça que tu veux
Sub nbAvance()
Dim fini As Boolean, nbAvance As Long
fini = False: nbAvance = 0
'Range("R33").Select
While Not fini
If ActiveCell.Value = "" Then
fini = True
Else
ActiveCell.Offset(0, 2).Select
nbAvance = nbAvance + 1
End If
Wend
If nbAvance = 4 Then
ActiveCell.Offset(0, -2).Select
MsgBox ("IL N'Y A QUE 4 AVANCES DE PREVUE")
End If
End Sub
il faut qu'à l'appel la 1ère cellule de saisie soit sélectionnée, là je te l'ai mise en commentaire
eric
Je vous remercie pour votre réponse.
Je viens de mettre mon fichier sur www.ci-joint.fr
http://www.cijoint.fr/cij20989200627443.xls
Merci pour votre aide
Anne Marie